C++ 子类化编辑控件时正确处理VK_DELETE

C++ 子类化编辑控件时正确处理VK_DELETE,c++,winapi,subclassing,editcontrol,C++,Winapi,Subclassing,Editcontrol,我将编辑控件子类化为只接受十进制数 一切正常,我唯一要做的就是当用户选择部分文本并按下Delete键(VK_Delete)时处理这个案例 我的问题如下: 按下Delete键(VK_Delete)是否会发送一些类似WM_CLEAR的消息,我可以使用这些消息进行处理,或者我必须在子类化过程中处理WM_KEYDOWN 多谢各位 致以最诚挚的问候。在记事本的编辑控件上运行Spy++后,我得出结论,WM\u KEYDOWN/WM\u keydup就是您所能得到的一切 <000001> 0015

我将编辑控件子类化为只接受十进制数

一切正常,我唯一要做的就是当用户选择部分文本并按下
Delete
键(
VK_Delete
)时处理这个案例

我的问题如下:

按下
Delete
键(
VK_Delete
)是否会发送一些类似
WM_CLEAR
的消息,我可以使用这些消息进行处理,或者我必须在子类化过程中处理
WM_KEYDOWN

多谢各位


致以最诚挚的问候。

在记事本的编辑控件上运行Spy++后,我得出结论,
WM\u KEYDOWN
/
WM\u keydup
就是您所能得到的一切

<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
0015082E S WM\u KILLFOCUS hwndGetFocus:0015082E
0015082E R WM_KILLFOCUS
0015082E S WM_设置焦点hwndLoseFocus:002D0830
0015082E R WM_设置焦点
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P WM_KEYDOWN nVirtKey:VK_DELETE CREPATE:1扫描代码:53扩展:1故障:0故障:0故障:0故障:0故障:0
0015082E P WM\U KEYUP nVirtKey:VK\U DELETE CREPATE:1扫描代码:53扩展:1故障:0故障:1故障:1故障:1故障:1
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E P消息:0x0118[未知]wParam:0000FFFF LPRAM:FFFFF 960001DA744
0015082E S EM_GETSEL lpdwStart:0020F330 lpdwEnd:0020F334
0015082E R EM_GETSEL wStart:2 wEnd:2 lpdwStart:0020F330(2)lpdwEnd:0020F334(2)
0015082E S WM_KILLFOCUS hwndGetFocus:(空)
0015082E R WM_KILLFOCUS

相关行是
WM\u KEYDOWN
WM\u keydup
是背靠背的。根本没有调用
WM\u CLEAR
。有一条有趣的0x0118消息,但它显示在每个按键上,而不仅仅是删除键。

感谢您验证我的假设。我想
WM_KEYDOWN
是唯一的出路。顺致敬意,