我正在開發一個Windows應用程序,我正在實現整個事件循環以及類似於我自己的一切(這是有原因的)。在一個地方,我需要在顯示一個窗口後執行一些代碼。通常,當窗口被創建時,我會在收到WM_CREATE消息時進行一些初始化。 WM_SHOWWINDOW只是在窗口顯示之前發送。不過,我需要在第一次顯示窗口後執行一些代碼。我似乎無法找到窗口顯示後發送的通知消息。難道是沒有一個?在窗口顯示後執行代碼
當然,我可以保留一個布爾值 - FirstRun - 指示我是否執行了我的邏輯,然後在接收到WM_ACTIVATE時執行代碼,只要布爾值爲TRUE,然後將FirstRun設置爲FALSE,以便代碼下一次我收到WM_ACTIVATE時不會執行,但這對我來說似乎有點不自然。
自從我在這個級別上做了win32編程以來,這已經過時了,所以不記得它。這裏最好的方法是什麼?
你能聽'WM_WINDOWPOSCHANGED'消息和測試的'SWP_SHOWWINDOW'標誌? –
這不會起作用,因爲窗口可以在整個應用程序中多次顯示和隱藏 - 但此代碼只需在第一個「顯示」中執行。 –
好吧,記下你是否曾對此作出過反應,只反應過一次。 –