Создать два окна в одном приложении? - PullRequest
3 голосов
/ 09 июля 2011

Это может быть простой вопрос, но я не знаю, с чего начать поиск ответа. Как мне создать два отдельных интерфейса Windows в одном приложении, используя родной winapi? Нужно ли ставить две функции CreateWindow(), используя один и тот же HINSTANCE? Что делать, если я хочу, чтобы окна экрана входа в систему и страница содержимого были такими, чтобы экран входа в систему шел первым, а после нажатия кнопки экран входа в систему разрушается, и появляется страница содержимого. Как мне сделать такой трюк?

Я думал об использовании DestroyWindow, а затем CreateWindow внутри сообщения о нажатии кнопки. Однако это будет означать, что основной цикл while (для сообщений о переводе / отправке) в WinMain выйдет из своего цикла и приведет к выходу всей программы. Другой способ - предварительно создать его в WinMain, но как бы я уведомил WinMain, если была нажата кнопка, и войти во второй цикл вместо выхода из программы?

1 Ответ

5 голосов
/ 09 июля 2011

Ты слишком обдумываешь это.Чтобы создать два окна, дважды наберите CreateWindow.Это просто.

Вызов DestroyWindow не приводит к тому, что ваша программа выходит из своего сообщения.Вызов PostQuitMessage это то, что это делает.Так что не делайте этого.

Когда нажата кнопка, уничтожьте одно окно и создайте другое.Там нет трюков.Насос сообщений доставляет сообщения в все окон (если вы не делаете это неправильно, явно запрашивая сообщения для одного окна, но вы не должны этого делать).

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