視窗的初始化和關閉順序

2021-04-18 19:30:11 字數 701 閱讀 4389

1.程式初始化過程中呼叫createwindow,為程式建立了乙個視窗,做為程式的螢幕舞台。createwindow 產生視窗之後會送出wm_create 直接給視窗函式,後者於是可以在此時機做些初始化動作(例如配置記憶體、開檔案、讀初始資料...)。

2. 程式活著的過程中,不斷以getmessage 從訊息貯列中抓取訊息。如果這個訊息是wm_quit,getmessage 會傳回0 而結束while 迴圈,進而結束整個程式。

3. dispatchmessage 透過windows user 模組的協助與監督,把訊息分派至視窗函式。訊息將在該處被判別並處理。

4. 程式不斷進行2. 和3. 的動作。

5. 當使用者按下系統選單中的close 命令項,系統送出wm_close。通常程式的視窗函式不欄截此訊息,於是defwindowproc 處理它。

6. defwindowproc 收到wm_close 後, 呼叫destroywindow 把視窗清除。destroywindow 本身又會送出wm_destroy。

7. 程式對wm_destroy 的標準反應是呼叫postquitmessage。

8. postquitmessage 沒什麼其它動作,就只送出wm_quit 訊息,準備讓訊息迴圈中的getmessage 取得,如步驟2,結束訊息迴圈。

開始若是mfc,訊息的順序是wm_create,wm_sizw,wm_setfocus,wm_paint。

初始化順序

上次面試碰到一面試題,雖然知道但是感覺還是有必要記錄下來,利己利民,題目是關於初始化順序的,也許對很多初學者還是有點用處的。閒話不多說,先上 package initialseq public class parent public parent public int method package ...

初始化順序

在類的內部,變數定義的順序決定了初始化的順序.即使變數定義散布於方法定義之間,它們仍會在任何方法呼叫之前得到初始化.無論建立多少個物件,靜態資料只占用乙份儲存區域.靜態變數初始化只有在必要時才會執行,比如有類table,如果不建立table物件也不引用table的靜態方法,那麼類table的靜態變數...

初始化順序

初始化,記憶體模型,成員變數,靜態變數,區域性變數,方法 初始化順序,靜態變數 按照類中定義的順序,先父後子 成員變數 按照類中定義的順序 建構函式 其他方法。建立物件時構造器的呼叫順序是 先初始化靜態成員 先父後子 初始化父類成員變數,然後呼叫父類構造器,再初始化自己成員變數,最後呼叫自身構造器。...