我试图在 Win32 中实现这一点,但我确信同样的规则也适用于 WinForms 的世界。
问:我创建了我的主窗口,然后,当它显示时,我想显示一个模式对话框。问题是; 我怎么知道主窗口何时完全初始化并可见?也就是说,究竟什么时候是显示对话框的最佳时间?
思路:
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