0
我試圖在回調函數中使用ShowWindow
來顯示一個窗口,該函數在我隱藏它之後調用了SetTime
,但它沒有起作用。 請檢查下面的代碼示例。Win32:隱藏後無法顯示窗口?
#define _WIN32_WINNT 0x0500
#include<windows.h>
void CALLBACK f(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime)
{
MessageBoxA(NULL,"Test","test2",MB_OK);
ShowWindow(hwnd, SW_SHOW); //This will not show the window :(
MessageBoxA(NULL,"Is it shown?","test2",MB_OK);
}
int main()
{
MSG msg;
ShowWindow(GetConsoleWindow(), SW_HIDE);
SetTimer(NULL, 0, 1000*3, &f);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
謝謝。
你爲什麼投「f」?刪除該演員。你不檢查錯誤。爲什麼不? –
很難說,什麼*「不起作用」*。文字說,隱藏後無法顯示窗口。代碼說別的東西('ShowWindow(hwnd,SW_SHOW); //不會隱藏窗口')。我不知道,爲什麼你選擇了錯誤的[TimerProc](https://msdn.microsoft.com/en-us/library/windows/desktop/ms644907.aspx)簽名。 – IInspectable
爲什麼不在''ShowWindow''調用(在'f'內)設置一個斷點,並觀察'hwnd'的值?由於計時器沒有與窗口關聯,我假設它是'NULL'。 – IInspectable