对话框程序怎么不能响应OnChar函数

xdd833 2006-12-08 10:52:28
我建了一个对话框程序,然后用向导添加了OnChar来响应WM_CHAR然后在函数体里
添加了AfxMessageBox("ok");,按理说,我运行程序时,如果击键就应该弹出消息框啊,但为什么没有反应,跟进去看了下发现就没有执行到OnChar,不知道是为什么,是不是我漏了什么步骤 ,望大虾们解答一下.
...全文
283 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
strayers 2006-12-09
  • 打赏
  • 举报
回复
定义成全局的或者用指针表示.
wxjman 2006-12-08
  • 打赏
  • 举报
回复
恩 重载的时候你判断pMsg->message是否是你需要响应的字符
或在你需要响应的字符范围内
是就处理~~~
wsb_8224 2006-12-08
  • 打赏
  • 举报
回复
那是对话框不能直接获得焦点了,获得焦点的窗体能够响应的.
xdd833 2006-12-08
  • 打赏
  • 举报
回复
谢谢楼上各位,难道就不能直接响应OnChar,非要通过PreTranslateMessage(MSG* pMsg)才可以吗
wsb_8224 2006-12-08
  • 打赏
  • 举报
回复
当然了,WM_KEYDOWN是响应的,因为它并不要求获得焦点才响应,只要一按下键盘就能够响应这个消息
wsb_8224 2006-12-08
  • 打赏
  • 举报
回复
直接获得对话框焦点好象不行,直接用这种方法也就是不行了,你可以响应PreTranslateMessage(MSG* pMsg),通过判断对话框ID来进行你要的操作了
wltg2001 2006-12-08
  • 打赏
  • 举报
回复
我删除了所有控件还是不行,不过响应WM_KEYDOWN却是可以的。
wxjman 2006-12-08
  • 打赏
  • 举报
回复
这个我前不久刚做了个的,貌似要重载一个函数~~~~
wltg2001 2006-12-08
  • 打赏
  • 举报
回复
试了一下,确实不行,还不知道为什么
xdd833 2006-12-08
  • 打赏
  • 举报
回复
对话框上面没有任何控件,就是用向导新建的对话框,直接添加了OnChar,就是没反应
wsb_8224 2006-12-08
  • 打赏
  • 举报
回复
OnChar来响应WM_CHAR是在获得焦点的窗体里面,你的对话框没有响应,可能是当前获得焦点的窗体不是对话框,而是对话框中的某个控件窗体

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧