У меня есть приложение win32, которое использует DialogBox() для отображения своего главного окна.win32 Приложение DialogBox: как сделать диалоговое окно скрытым при запуске?
Теперь я хочу, чтобы начать это приложение с диалоговым окном невидимым, а затем установить его видимым с SetWindowPos (hDlg, HWND_TOPMOST ...
К сожалению
http://msdn.microsoft.com/en-us/library/ms645452(VS.85).aspx
Функция отображает диалоговое окно (независимо от того, задает ли шаблон стиль WS_VISIBLE)
... кажется, что это невозможно сделать с помощью DialogBox().
Я мог бы добавить вызов SetWindowPos (hDlg, HWND_NOTOPMOST ...
в моей диалоговой процедуре в обработчике WM_INITDIALOG.
... но я обеспокоен тем, что при тяжелой системе погрузки диалоговое окно на короткое время появится затем исчезают, давая уродливый фликкер эффект.
есть ли способ создания моего диалогового окна с помощью DialogBox(), не показывая его?
Не могли бы вы обойти DialogBox и просто использовать CreateWindowEx и т.д.? – YWE
@YWE: Я не уверен. MSDN говорит, что DialogBox() использует CreateWindowEx() внутренне, поэтому это должно быть возможно. Моя процедура диалога ожидает сообщений типа WM_INITDIALOG и делает диалоговые вызовы, такие как SendDlgItemMessage(): не уверен, все ли это будет работать, если я использую CreateWindowEx(). –
У меня проблемы. Если вы не хотите показывать диалог, просто не вызывайте ShowDialog(). Направьте свой собственный цикл сообщений, если это необходимо. –