Я пытаюсь сделать это в Win32, но я уверен, что те же правила применяются в мире WinForms.
Q: Я создаю главное окно, а затемКогда он показывается, я хочу показать модальный диалог.Проблема в;как я могу узнать, когда главное окно полностью инициализировано и видно?То есть, когда именно лучше всего показывать диалоговое окно?
Идеи:
1) Обрабатывать WM_CREATE
и в качестве последнего шага PostMessage(WM_USER_MESSAGE)
.Обработка WM_USER_MESSAGE
и показ модального диалога!
2) Обработайте WM_CREATE
и установите таймер на ~ 300 мс.Обрабатывать WM_TIMER
, убивать таймер и показывать модальный диалог!
3) Дескриптор WM_ACTIVATE
, если первая активация PostMessage(WM_USER_MESSAGE)
.Обработка WM_USER_MESSAGE
и показ модального диалога!
4) Обрабатывать WM_SHOWWINDOW
, если впервые показывать модальное диалоговое окно шоу!
Вышеописанные подходы работают, но результат не всегда так хорош.Есть ли лучший метод?Возможно обрабатывать WM_ENTERIDLE
или WM_KICKIDLE
сообщений каким-либо образом?