回 帖 发 新 帖 刷新版面

主题:关于Edit控件键盘消息的问题

在一个窗口中的Edit控件拥有焦点的情况下敲回车 这个事件对应的哪个消息?
好像WM_KEYDOWN和WM_COMMAND都不是

回复列表 (共8个回复)

沙发

貌似是 DEFPUSHBUTTON ,如果没有,则相当于按下了 IDOK。

板凳

需要处理WM_GETDLGCODE消息。

3 楼

若你用MFC则可以使用函数PreTranslateMessage,效果一样

4 楼


我不是用的MFC,也没有用对话框,直接调用的CreateWindow在主窗体上建的Edit控件

5 楼

这与是不是对话框没有关系,对话框上的控件也是用CreateWindow创建的。
系统预处理了控件的所有键盘消息,如果要自己处理键盘消息,需要子类化该控件,这时把默认的处理过程换成自定义的窗口处理过程就行了,处理WM_KEYDOWN或者WM_CHAR,还不行就需要处理WM_GETDLGCODE。

6 楼

要在WinMain函数里做文章!
详情参见本人播客:



http://malpower.blog.163.com

7 楼

还有一中方法就是将edit 类的窗口子类化,如果不觉得麻烦,还可以超类化EDIT类



呵呵

8 楼

怎么老是有这么多人用“直接调用CreateWindow在主窗体上建的Edit控件”,累不累呀,怎么就不要对话框呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册