C ++ перезапустите приложение или повторно запустите winapi main - PullRequest
1 голос
/ 09 июля 2020

Я создаю программу и хотел бы, чтобы моя программа была перезапущена, когда кто-то пытается изменить размер экрана.

Так далеко от поиска в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...