主题:关于Edit控件键盘消息的问题
LOKyrandia
[专家分:20] 发布于 2007-11-10 13:44:00
在一个窗口中的Edit控件拥有焦点的情况下敲回车 这个事件对应的哪个消息?
好像WM_KEYDOWN和WM_COMMAND都不是
回复列表 (共8个回复)
沙发
臭石头雪球 [专家分:23030] 发布于 2007-11-10 18:12:00
貌似是 DEFPUSHBUTTON ,如果没有,则相当于按下了 IDOK。
板凳
zlhhz [专家分:710] 发布于 2007-11-11 15:47:00
需要处理WM_GETDLGCODE消息。
3 楼
zlhhz [专家分:710] 发布于 2007-11-11 15:55:00
若你用MFC则可以使用函数PreTranslateMessage,效果一样
4 楼
LOKyrandia [专家分:20] 发布于 2007-11-11 22:52:00
我不是用的MFC,也没有用对话框,直接调用的CreateWindow在主窗体上建的Edit控件
5 楼
zlhhz [专家分:710] 发布于 2007-11-12 12:39:00
这与是不是对话框没有关系,对话框上的控件也是用CreateWindow创建的。
系统预处理了控件的所有键盘消息,如果要自己处理键盘消息,需要子类化该控件,这时把默认的处理过程换成自定义的窗口处理过程就行了,处理WM_KEYDOWN或者WM_CHAR,还不行就需要处理WM_GETDLGCODE。
6 楼
malwater51 [专家分:250] 发布于 2008-05-28 10:59:00
要在WinMain函数里做文章!
详情参见本人播客:
http://malpower.blog.163.com
7 楼
malwater51 [专家分:250] 发布于 2008-06-24 10:49:00
还有一中方法就是将edit 类的窗口子类化,如果不觉得麻烦,还可以超类化EDIT类
呵呵
8 楼
zlhex [专家分:0] 发布于 2008-06-27 16:19:00
怎么老是有这么多人用“直接调用CreateWindow在主窗体上建的Edit控件”,累不累呀,怎么就不要对话框呢?
我来回复