Я пытался показать окно с использованием 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