Ссылаясь на MSDN, функция ShowWindow
, параметр nCmdShow
:
Управляет отображением окна.Этот параметр игнорируется при первом вызове приложения ShowWindow, если программа, запустившая приложение, предоставляет структуру STARTUPINFO.
Итак, я предполагаю, что ваше окно является первым окном, созданным приложением,и как таковой, параметр ShowWindow
игнорируется.
Еще один малоизвестный факт виден в документах для CreateWindow
, параметр y
(да, y
):
Если перекрывающееся окно создается с установленным битом стиля WS_VISIBLE, а для параметра x установлено значение CW_USEDEFAULT, то параметр y определяет способ отображения окна.Если параметром y является CW_USEDEFAULT, тогда оконный менеджер вызывает ShowWindow с флагом SW_SHOW после того, как окно было создано.Если параметр y имеет какое-то другое значение, то диспетчер окон вызывает ShowWindow с этим значением в качестве параметра nCmdShow.
Вероятно, лучше создать скрытое окно (без WS_VISIBLE
) и /или передача 0 в качестве параметра y
для CreateWindow
.
Другие варианты: сначала создать фиктивное окно, показать его и быстро уничтожить, например, в виде заставки.Это потребовало бы команду STARTUPINFO.