MFC中訊息對映機制

2021-10-10 04:20:54 字數 694 閱讀 8735

背景:父對話方塊下的幾個子對話方塊之間互相通訊,更改各自的控制項狀態

解決:1是通知父對話方塊,讓父對話方塊來處理。2是直接和子對話方塊通訊。都要用到訊息對映

1、子對話方塊在設定為child、無邊框之後是沒有名字的,我在通過父對話方塊來獲取子對話方塊控制代碼的時候一直失敗,所以考慮在uesd子對話方塊建立的時候在對話方塊dlg.cpp檔案頂部定義視窗控制代碼全域性變數 hwnd dlghwnd。在對話方塊初始化函式,新增控制代碼獲得

lghwnd = this->m_hwnd ;

在user.cpp的檔案頂部定義引用

extern hwnd lghwnd ;後即可使用該子對話方塊的控制代碼。

2、接下來是關於使用訊息對映的:

在user.cpp中 新增自定義訊息:#define wm_user wm_user+100  

我是想user在一定條件下used的控制項狀態發生改變,所以在條件成立處新增this->sendmessage(wm_user ,0,0);

當然declare_message_map()的宣告都是要有的。

在used.cpp中新增自定義訊息:#define wm_user wm_user+100  

在 begin_message_map()   與end_message_map()  之間新增on_messag (wm_user,usemessage );

usemessage是used.cpp中的處理函式。

MFC訊息對映機制

一 mfc中採用的這種訊息處理機制成為 mfc訊息對映機制 乙個mfc訊息響應函式在程式中有三處相關資訊 函式原型,函式實現,關聯訊息和訊息響應函式的巨集。函式原型 標頭檔案cdrawview 兩個afx msg注釋巨集之間 訊息響應函式原型的宣告 afx msg void onlbuttondow...

MFC訊息對映機制

win32的訊息迴圈機制是 產生的訊息交由作業系統,將其放到應用程式的訊息佇列中。應用程式通過getmessage函式從這個佇列中取出 一條訊息 由dispatchmessage函式把訊息又交給作業系統,作業系統呼叫視窗過程函式wndproc進行處理。該函式利用switch case結構來判斷並響應...

MFC訊息對映機制

mfc的設計者們在設計mfc時,緊緊把握乙個目標,那就是盡可能使得mfc的 要小,速度盡可能快。為了這個目標,他們使用了許多技巧,其中很多技巧體現在巨集的運用上,實現mfc的訊息對映的機制就是其中之一。同mfc訊息對映機制有關的巨集有下面幾個 declare message map 巨集 begin...