Сначала предостережение, я совсем недавно начал изучать WinAPI.Я уверен, что этот вопрос задавался много раз прежде, но по какой-то причине я не могу найти его нигде в Интернете.Вопрос просто в этом;зачем беспокоиться о начальном вызове ShowWindow()
в теле WinMain()
перед выполнением цикла сообщений?Почему бы просто не установить окно так, чтобы оно было изначально видимым с помощью флага WS_VISIBLE
?
У меня также есть несколько вопросов о механике функции ShowWindow()
.Какие сообщения он действительно отправляет?В MSDN говорится, что:
Если окно при создании создает стиль WS_VISIBLE
, окно получает это сообщение [WM_SHOWWINDOW]
после того, как оно создано, но до его отображения.Окно также получает это сообщение, когда его состояние видимости изменяется с помощью функции ShowWindow
или ShowOwnedPopups
.
Означает ли это, что основным средством связи между функцией ShowWindow()
и Windows является сквозноесообщение WM_SHOWWINDOW
?В нем также говорится, что:
Сообщение WM_SHOWWINDOW
не отправляется при следующих обстоятельствах:
MSDN также заявляет, что:
Когда приложение впервые вызывает ShowWindow
, оно должно использовать параметр nCmdShow
функции WinMain
в качестве параметра nCmdShow
.
Петцольд заявляет, что аргумент, передаваемый этому параметру nCmdShow
, будет SW_SHOWNORMAL
, SW_SHOWMAXIMIZED
или SW_SHOWMINNOACTIVE
.Должен ли я считать, что функция ShowWindow()
единственный раз не отправляет сообщение WM_SHOWWINDOW
, когда мы совершаем этот самый первый начальный вызов в Winmain()
?Если так, то как тогда получить окно для отображения?Кроме того, как все это связано с реальной окраской окна?
Извините, если мой вопрос немного беспорядочный, но механика показа окна немного смущает меня, и дляПо какой-то причине трудно найти четкие ответы на эти вопросы в Интернете (в отличие от просто кусочков информации).Будем весьма благодарны за любую помощь в разъяснении всего этого!