温馨提示×

如何使 messagebox 弹出后不获取窗口焦点

小云
121
2023-08-07 14:19:57
栏目: 编程语言

要使messagebox弹出后不获取窗口焦点,可以使用Win32 API中的MessageBox函数,并设置参数为MB_SYSTEMMODAL。

示例代码如下:

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 创建一个窗口
HWND hWnd = CreateWindowEx(0, "STATIC", "Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 300, NULL, NULL, hInstance, NULL);
// 弹出消息框,不获取窗口焦点
MessageBox(hWnd, "Hello World", "Message", MB_SYSTEMMODAL);
// 显示窗口
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

在上面的示例代码中,通过设置MessageBox函数的第四个参数为MB_SYSTEMMODAL,即可实现消息框弹出后不获取窗口焦点。

0