我一直在为一个基本的用户界面而苦苦挣扎。我有一个父窗口和几个子窗口。对于按钮(BS_CHECKBOX 样式)和编辑等子窗口,我无法处理任何按下 ESC 键事件的消息。我可以对子窗口进行子类化,但仅仅处理一个事件似乎有点过头了。我也有一个 listview 孩子,出于某种原因,我可以正确处理 VK_ESCAPE。我还检查了 spy++ 并注意到当按下 ESC 键时没有消息发送到父窗口(并且孩子被聚焦)。如果我将 spy++ 设置为仅记录子消息,则会为按键生成正确的消息——它们只是不会传递给父消息。有什么想法(不)做什么?
主窗口循环:
MSG Msg;
while (GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage (&Msg);
DispatchMessage (&Msg);
}
父级 WndProc 中用于处理 listview 按键的工作代码:
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case LVN_KEYDOWN:
if (((LPNMLVKEYDOWN)lParam)->wVKey == VK_ESCAPE)
Exit();
break;
}
break;
谢谢,
克拉