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