Я создаю программу и хотел бы, чтобы моя программа была перезапущена, когда кто-то пытается изменить размер экрана.
Так далеко от поиска в rnet я обнаружил, что это невозможно ' «перезапустите приложение», как в случае с кодом.
Все говорят, что нужно просто закрыть и перезапустить его, но я не хочу этого, я хочу, чтобы код делал это.
Итак я подумал, а нельзя ли повторно запустить winmain? и 'убить' текущий экземпляр winmain в моем коде, но оставить активным '' shell (application?) ''?
вот что я пытаюсь сделать:
LRESULT CALLBACK Proc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch (Message)
{
case WM_SIZE: //Check if the window has been resized
WinMain(this, this, this, NULL);
// or restart application code.
break;
case WM_PAINT: // we need to paint? lets paint!
if (DrawUI)
Render(true);
else
Render(false);
break;
case WM_CREATE:
return DwmExtendFrameIntoClientArea(hWnd, &pMargin); // extension of window frame into client area
break;
case WM_DESTROY:
PostQuitMessage(0); // We need to use this to exit a message loop
break;
default:
return DefWindowProc(hWnd, Message, wParam, lParam); // Making sure all messages are processed
break;
}
}
пожалуйста, посмотрите код под WM_SIZE: это то, что я пытаюсь сделать, но я не знаю, как это сделать правильно и как закрыть предыдущий winmain.