为什么我的对话框不能正常响应WM_CHAR 消息?

时间:2022-01-23 18:12:02
我需要一个对话框最大化来实现全屏幕,去掉了菜单,最大最小按钮,边框为无----我只需要它来响应用户输入(输出是directdraw的图形界面)。但对于对按键消息,采用了wm-char消息,并放了一个警告框,可不能正常报警。在wm-keydown中放入警告框,可以响应wm-char、wm-keydown,正常。可一旦去掉wm-keydown中的警告框,wm-char又不能响应,有谁怎么是哪里的错误吗?

8 个解决方案

#1


请附源码,让我参考一下.

#2


仿佛有一个WM_GETDLGCODE,试着在MSDN里查找一下。

#3


WM_char 消息。在 CView 类中,用onChar 方法来处里。

#4


似乎在Dlg中是不能响应wm_char的,我解决这类问题时只好用钩子去了

#5


谁说dlg不能响应wm_char的,主要是当前焦点不对,将当前焦点对象设为dlg就可以响应了

#6


但问题是dlg是没有输入焦点的吧

#7


to iamwjp
似乎这个消息是控件用的?即是要是child风格?

#8


一定是当前dlg中的焦点是在一个button或其他一个控件上,
我以前也是遇到这个问题,结果我发现焦点在一个Button上,所以dlg当然不会响应WM_CHAR。

#1


请附源码,让我参考一下.

#2


仿佛有一个WM_GETDLGCODE,试着在MSDN里查找一下。

#3


WM_char 消息。在 CView 类中,用onChar 方法来处里。

#4


似乎在Dlg中是不能响应wm_char的,我解决这类问题时只好用钩子去了

#5


谁说dlg不能响应wm_char的,主要是当前焦点不对,将当前焦点对象设为dlg就可以响应了

#6


但问题是dlg是没有输入焦点的吧

#7


to iamwjp
似乎这个消息是控件用的?即是要是child风格?

#8


一定是当前dlg中的焦点是在一个button或其他一个控件上,
我以前也是遇到这个问题,结果我发现焦点在一个Button上,所以dlg当然不会响应WM_CHAR。