有些懵了,回车键怎么就捕获不到。
时间:2010-12-29
来源:互联网
对话框上有编辑框(RichEdit),其他按钮,在编辑框输入后,本意是回车键就将输入内容发送出去,但是回车键就是捕不到,始终响应的换行。
编辑框用一个CWnd包装,加到对话框上,在对话框中PreTranslateMessage,根本就不进来。
我不太明白这个消息流程是怎么的。
比如说一个对话框,上面添加一个控件,那么按键时,消息是先走对话框,然后再排到具体的控件上去?
好心人,解释下,谢谢。
编辑框用一个CWnd包装,加到对话框上,在对话框中PreTranslateMessage,根本就不进来。
我不太明白这个消息流程是怎么的。
比如说一个对话框,上面添加一个控件,那么按键时,消息是先走对话框,然后再排到具体的控件上去?
好心人,解释下,谢谢。
作者: sc_valentine21 发布时间: 2010-12-29
C/C++ code
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(GetDlgItem(IDC_EDIT1)->GetSafeHwnd() == pMsg->hwnd && WM_KEYDOWN == pMsg->message && VK_RETURN == pMsg->wParam) { AfxMessageBox(_T("Enter Press!")); } return CDialog::PreTranslateMessage(pMsg); }
作者: VisualEleven 发布时间: 2010-12-29
如果只是实现用回车发送的话,我提供另一种思路,做一个按钮,设置为默认,回车发送消息。然后将按钮隐藏掉,这样从表面上看回车就是发送消息了
作者: zyrr159487 发布时间: 2010-12-29
你的是正确的,没错。
但是我这里,情况可能特殊些,PreTranslateMessage根本就不进来,这点不是很明白。
PreTranslateMessage是必然执行的?怎么做可以让消息不进来?
但是我这里,情况可能特殊些,PreTranslateMessage根本就不进来,这点不是很明白。
PreTranslateMessage是必然执行的?怎么做可以让消息不进来?
作者: sc_valentine21 发布时间: 2010-12-29
C/C++ code
if (pMsg->message == WM_KEYDOWN) { if (GetDlgItem(IDC_EDIT1)==GetFocus()) { if( pMsg->wParam==VK_RETURN) { AfxMessageBox(_T("按键成功")); } } }
作者: tigerMayDo 发布时间: 2010-12-29
引用 2 楼 zyrr159487 的回复:
如果只是实现用回车发送的话,我提供另一种思路,做一个按钮,设置为默认,回车发送消息。然后将按钮隐藏掉,这样从表面上看回车就是发送消息了
如果只是实现用回车发送的话,我提供另一种思路,做一个按钮,设置为默认,回车发送消息。然后将按钮隐藏掉,这样从表面上看回车就是发送消息了
你的意思,明白,只是怎么去响应按钮点击?焦点在EDIT的时候,根本都不响应按钮,那岂不是还是没有效果?
作者: sc_valentine21 发布时间: 2010-12-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28