classwizard不允許增加使用者自定義訊息,所以你必須手工輸入。輸入後,classwizard就可以象處理其它訊息一樣處理你自定義的訊息了。
下面是增加自定義訊息的步驟:
第二步:實現訊息處理函式。該函式使用wpram和lparam引數並返回lpesult。
lpesult cmainframe::onmymessage(wparam wparam, lparam lparam)
第三步:在類標頭檔案的afx_msg塊中說明訊息處理函式:
class cmainframe:public cmdiframewnd
}afx_msg
declare_message_map()
}第四步:在使用者類的訊息塊中,使用on_message巨集指令將訊息對映到訊息處理函式中。
begin_message_map(cmainframe, cmdiframewnd)
//}afx_msg_map
end_message_map()
如果使用者需要乙個整個系統唯一的訊息,可以呼叫sdk函式registerwindowmessage並使用on_register_message巨集指令取代on_message巨集指令,其餘步驟同上。
VC 如何處理自定義訊息
在sdk程式設計中,對訊息的獲取與分發是通過訊息迴圈來完成。而在mfc程式設計中則是通過採取訊息對映的方式對其進行處理。相比而言,這樣的處理方式要簡單得多,這也是符合物件導向程式設計中盡可能隱含實現細節的原則。乙個完整mfc訊息對映包括對訊息處理函式的原型宣告 實現以及存在於訊息對映中的訊息入口。一...
MFC中如何處理自定義訊息
假設自定義訊息號是wm test,訊息處理函式是ontest,處理該訊息的對話方塊指標是m ptestdlg,則進行自定義訊息處理的步驟主要有以下 1 定義訊息號,建議在stdafx.h中進行定義 define wm test wm user 1 自定義訊息 2 在響應該訊息的對話方塊標頭檔案中找到...
VC 對於自定義訊息處理
無模式對話方塊與有模式對話方塊不同的是在建立後其他視窗都可以繼續接收使用者輸入,因此無模式對話方塊有些類似乙個彈出視窗。建立無模式對話方塊需要呼叫 bool cdialog create uint nidtemplate,cwnd pparentwnd null 之後還需要呼叫 bool cdial...