我将编辑控件子类化为只接受十进制数字。
一切正常,剩下的唯一事情就是处理用户选择部分文本并按下Delete
键 ( VK_DELETE
) 的情况。
我的问题如下:
按下一个Delete
键 ( VK_DELETE
) 是否会发送一些WM_CLEAR
我可以用于处理的消息,还是我必须WM_KEYDOWN
在我的子类化过程中处理并在那里进行处理?
谢谢你。
最好的祝福。
我将编辑控件子类化为只接受十进制数字。
一切正常,剩下的唯一事情就是处理用户选择部分文本并按下Delete
键 ( VK_DELETE
) 的情况。
我的问题如下:
按下一个Delete
键 ( VK_DELETE
) 是否会发送一些WM_CLEAR
我可以用于处理的消息,还是我必须WM_KEYDOWN
在我的子类化过程中处理并在那里进行处理?
谢谢你。
最好的祝福。
在记事本的编辑控件上运行 Spy++ 后,我得出的结论是WM_KEYDOWN
/WM_KEYUP
就是你所得到的。
<000001> 0015082E S WM_KILLFOCUS hwndGetFocus:0015082E
<000002> 0015082E R WM_KILLFOCUS
<000003> 0015082E S WM_SETFOCUS hwndLoseFocus:002D0830
<000004> 0015082E R WM_SETFOCUS
<000005> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000006> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000007> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000008> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000009> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000010> 0015082E P WM_KEYDOWN nVirtKey:VK_DELETE cRepeat:1 ScanCode:53 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
<000011> 0015082E P WM_KEYUP nVirtKey:VK_DELETE cRepeat:1 ScanCode:53 fExtended:1 fAltDown:0 fRepeat:1 fUp:1
<000012> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000013> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000014> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000015> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000016> 0015082E P message:0x0118 [Unknown] wParam:0000FFFF lParam:FFFFF960001DA744
<000017> 0015082E S EM_GETSEL lpdwStart:0020F330 lpdwEnd:0020F334
<000018> 0015082E R EM_GETSEL wStart:2 wEnd:2 lpdwStart:0020F330 (2) lpdwEnd:0020F334 (2)
<000019> 0015082E S WM_KILLFOCUS hwndGetFocus:(null)
<000020> 0015082E R WM_KILLFOCUS
相关行是<000010>
and <000011>
: WM_KEYDOWN
andWM_KEYUP
是背靠背的。根本没有WM_CLEAR
叫。有一条有趣的 0x0118 消息,但在每次按键时都会出现,而不仅仅是删除键。