Window訊息機制 1

2021-08-22 05:29:05 字數 757 閱讀 3125

為了保證發給視窗的任何過程的訊息都能夠被視窗處理,window提供兩個預設的訊息處理api

defwindowproc 對應普通視窗,defdlgproc對應對話方塊的訊息處理.

傳送訊息的方式

sendmessage:要求訊息立即返回,直到訊息處理完畢,將訊息結果發給呼叫者.被封裝的mfc原形函式:

lresult cwnd::sendmessage(uint umsg,wparam wparam=0,lparam lparam=0);

postmessage:只是將訊息放到執行緒訊息佇列中,不等待訊息響應就立即返回了.封裝後的函式原型

bool cwnd::postmessage(uint umsg,wparam wparam=0,lparam lparam=0);

訊息具有優先順序:

定時器wm_timer訊息的優先順序較低,如果有高於此的訊息存在,系統將優先處理其他訊息,所以如果用wm_timer無法做到精確定時的結論。

使用者自定義訊息在:wm_user(0x0400)-- 0x7fff

如:afx_msg lresult on***(wparam wparam,lparam lparam);

而在mfc中可以利用:on_message巨集來實現自定義訊息對映,如果為了實現通訊需要,可以利用:api registerwindowmessage來註冊訊息。

uint registerwindowmessage(lpctstr lpstring);

window訊息機制 四

注 可能你看這些東西的時候有些亂,不過沒關係,這很正常,多看幾下msdn就慢慢明白了,有我寫這個專題的時候,很多概念也太不清楚,不過等我查資料寫下來後,感覺漸漸有些東西也有了點眉目,因為這本身也是個進步的過程。小朱 七 處理訊息 視窗過程處理訊息通常以switch語句開始,對於它要處理的每一條訊息i...

Window訊息機制 2

對話方塊程式的初始化顯示 可以在oninitdialog中增加相應的初始處理方法。自定義訊息對映處理例項 定義乙個訊息 define wm doextwork wm user 500 在對應的對話方塊類中通過on message wm doextwork,ondoextwork 實現訊息對映,在對話...

Windows訊息機制 1

dos的過程驅動與windows的事件驅動 在講本程式的訊息迴圈之前,我想先談一下dos與windows驅動機制的區別 dos程式主要使用順序的,過程驅動的程式設計方法。順序的,過程驅動的程式有乙個明顯的開始,明顯的過程及乙個明顯的結束,因此程式能直接控制程式事件或過程的順序。雖然在順序的過程驅動的...