LRESULT MainFrameWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam){ switch (uMsg) { case WM_CREATE: //其他初始化操作 break; case WM_KEYDOWN:{ //处理键盘按下操作 //VK_ESCAPE Esc键 if (wParam == VK_ESCAPE){ return 0; } break; } case WM_CLOSE: //处理窗口关闭事件 break; default: break; } return __super::HandleMessage(uMsg, wParam, lParam); //调用父类的消息处理函数 } 按下Esc仍然会关闭窗口
时间: 2024-04-12 22:26:54 浏览: 152
Exam7_4显示滑动条的变化.rar_site:www.pudn.com_visual c_滑动条
根据你提供的代码,我注意到你是在一个名为MainFrameWnd的类中重写了消息处理函数HandleMessage。根据代码逻辑,你在WM_KEYDOWN消息中判断了按下的键是否为Esc键,并返回了0,但是窗口仍然会关闭。这可能是由于你没有正确处理WM_CLOSE消息导致的。
在处理WM_CLOSE消息时,你需要调用DestroyWindow函数来销毁窗口。如果没有正确处理WM_CLOSE消息,窗口将继续关闭。你可以尝试在WM_CLOSE分支中添加销毁窗口的代码,如下所示:
```cpp
case WM_CLOSE:
DestroyWindow(m_hWnd); // 销毁窗口
return 0;
```
这样,当按下Esc键时,窗口将不会关闭。
另外,请确保你的MainFrameWnd类是继承自CWindowWnd或CControlUI,并且正确注册了窗口类。如果还有其他问题,请提供更多的相关代码以便我更好地帮助你解决问题。
阅读全文