我正在开发一个Windows应用程序,我正在实现整个事件循环以及类似于我自己的一切(这是有原因的)。在一个地方,我需要在显示一个窗口后执行一些代码。通常,当窗口被创建时,我会在收到WM_CREATE消息时进行一些初始化。 WM_SHOWWINDOW只是在窗口显示之前发送。不过,我需要在第一次显示窗口后执行一些代码。我似乎无法找到窗口显示后发送的通知消息。难道是没有一个?在窗口显示后执行代码
当然,我可以保留一个布尔值 - FirstRun - 指示我是否执行了我的逻辑,然后在接收到WM_ACTIVATE时执行代码,只要布尔值为TRUE,然后将FirstRun设置为FALSE,以便代码下一次我收到WM_ACTIVATE时不会执行,但这对我来说似乎有点不自然。
自从我在这个级别上做了win32编程以来,这已经过时了,所以不记得它。这里最好的方法是什么?
你能听'WM_WINDOWPOSCHANGED'消息和测试的'SWP_SHOWWINDOW'标志? –
这不会起作用,因为窗口可以在整个应用程序中多次显示和隐藏 - 但此代码只需在第一个“显示”中执行。 –
好吧,记下你是否曾对此作出过反应,只反应过一次。 –