非模态对话框,esc键为啥不好用了呢?
我用VS2010 使用win32 api开发,在主窗口上点击按钮创建了一个非模态对话框,我自己写了对话框的窗口过程,
也添加了处理ESC消息的代码,内容是退出对话框,,为啥不好用呢,就似非模态对话框弹出来后,点ESC也不会消失。。
[解决办法]
while (GetMessage(&msg, NULL, 0, 0)){ if (!IsDialogMessage(hwnd, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); }}
[解决办法]
加上IsDialogMessage后,按ESC时会发WM_COMMAND给对话框,ID为2,相当于按下取消按钮
case WM_COMMAND: switch (wParam) { case MAKEWPARAM(IDCANCEL, BN_CLICKED): DestroyWindow(hwnd); }case WM_DESTROY: PostQuitMessage(0);