私はしばらくの間、基本的なUIのことで苦労してきました。親ウィンドウといくつかの子ウィンドウがあります。ボタン(BS_CHECKBOXスタイル)や編集などの子ウィンドウを使用すると、ESCキーイベントを押すためのメッセージを処理できません。子ウィンドウをサブクラス化することはできますが、1つのイベントを処理するだけではやり過ぎのようです。リストビューの子もあり、何らかの理由でVK_ESCAPEを正しく処理できます。また、spy ++を確認したところ、ESCキーが押されたとき(および子がフォーカスされたとき)に親ウィンドウにメッセージが送信されないことに気付きました。spy ++を子メッセージのみをログに記録するように設定した場合、キーを押すと正しいメッセージが生成されます。それらは親に渡されません。何をすべきか(しない)のアイデアはありますか?
メインウィンドウループ:
MSG Msg;
while (GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage (&Msg);
DispatchMessage (&Msg);
}
リストビューキーの押下を処理するための親のWndProcの作業コード:
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case LVN_KEYDOWN:
if (((LPNMLVKEYDOWN)lParam)->wVKey == VK_ESCAPE)
Exit();
break;
}
break;
ありがとう、
クラ