2010-07-25 90 views
0

這是'我的'program。如何在5秒後關閉窗戶?如何在5秒後關閉窗戶?

//... 
DeleteObject (hPedzelOkna); 

DeleteObject (hBitmapa); 

Sleep(5); 
PostQuitMessage (0); 

/* The program return-value is 0 - The value that PostQuitMessage() gave */ 
//... 

DestroyWindow(hwnd); 

不行

(我使用開發C++)

編輯人已經開始使用SetTimer建議,但我不能讓下面的代碼工作。你可以請一個代碼示例告訴我如何做到這一點?

SetTimer(hwnd, DestroyWindow(hwnd), 1000, NULL); 

回答

8

睡眠參數是以毫秒爲單位,所以5秒將是5000,但使用的睡眠是不是在這裏正確的做法(Sleep'ing阻止你的窗口,從處理消息)

您應該使用SetTimer的( )在WM_CREATE中,當定時器觸發時,調用窗口上的DestroyWindow()

2

首先,你幾乎從不想在窗口化程序中「休眠」。如果我這樣做,我會設置一個計時器來響應WM_CREATE,然後執行DestroyWindow/PostQuitMessage以響應WM_TIMER

1

您應該使用計時器。在Windows中,如果你做了像Sleep這樣的事情(順便說一下接受的時間是幾毫秒而不是幾秒),那麼你並沒有處理事件。

0

使用SetTimer函數爲NULL。您將在1000毫秒後收到一條WM_TIMER消息(例如,根據您的示例,秒數)。

然後處理WM_TIMER併發送PostQuitMessage

相關問題