要使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,即可實現消息框彈出后不獲取窗口焦點。