阅读量:0
要获取窗口关闭的消息,可以使用Windows API中的消息循环和消息处理机制。
首先,需要使用主消息循环函数GetMessage
来获取消息。然后,在消息处理函数WndProc
中处理窗口关闭的消息。
下面是一个简单的示例代码:
#include <windows.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CLOSE: // 在这里处理窗口关闭的消息 MessageBox(NULL, "窗口将要关闭", "提示", MB_OK); DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 注册窗口类 WNDCLASS wc = {0}; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND); wc.lpszClassName = "MyWindowClass"; RegisterClass(&wc); // 创建窗口 HWND hwnd = CreateWindow("MyWindowClass", "My Window", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hInstance, NULL); // 显示窗口 ShowWindow(hwnd, nCmdShow); // 消息循环 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
在上面的示例代码中,通过在WndProc
函数中处理WM_CLOSE
消息来获取窗口关闭的消息。当收到该消息时,会弹出一个提示框,然后销毁窗口。
注意,这只是一个简单的示例,实际使用时,可能需要根据具体的需求进行相应的处理。