Windows api怎么获取窗口关闭的消息

avatar
作者
猴君
阅读量: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消息来获取窗口关闭的消息。当收到该消息时,会弹出一个提示框,然后销毁窗口。

注意,这只是一个简单的示例,实际使用时,可能需要根据具体的需求进行相应的处理。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!