由於自己要做乙個拼音輸入模組,比如我按下a鍵後,讓它產生乙個訊息,在訊息處理函式裡去搜尋a所對應的漢字。由於系統似乎沒有提供相應的訊息,所以我自己定義了乙個!
具體做法如下:
整合開發環境vs2005
基於mfc對話方塊的程式
首先在***dlg.h的開頭新增:#define wm_mymessage wm_user+100
然後在***dlg.h的標頭檔案中定義
// generated message map functions
virtual bool oninitdialog();
afx_msg void onsyscommand(uint nid, lparam lparam);
afx_msg void onpaint();
afx_msg hcursor onquerydragicon();
declare_message_map()
public:
afx_msg void onbnclickedbtna();
afx_msg void onbnclickedbtne();
afx_msg lresult onmymessage(wparam wparam,lparam lparam);
afx_msg void onbnclickedbtnq();
afx_msg void onbnclickedbtnw();
afx_msg void onbnclickedbtnr();
其中afx_msg lresult onmymessage(wparam wparam, lparam lparam);是我自己宣告的訊息處理函式
然後到***dlg.cpp的檔案中的訊息對映表中新增對映:
begin_message_map(cpytestdlg, cdialog)
on_wm_syscommand()
on_wm_paint()
on_wm_querydragicon()
on_message(wm_mymessage, onmymessage)
//}}afx_msg_map
on_bn_clicked(idc_btn_a, &cpytestdlg::onbnclickedbtna)
on_bn_clicked(idc_btn_e, &cpytestdlg::onbnclickedbtne)
on_bn_clicked(idc_btn_q, &cpytestdlg::onbnclickedbtnq)
on_bn_clicked(idc_btn_w, &cpytestdlg::onbnclickedbtnw)
on_bn_clicked(idc_btn_r, &cpytestdlg::onbnclickedbtnr)
on_bn_clicked(idc_btn_t, &cpytestdlg::onbnclickedbtnt)
其中on_message(wm_mymessage, onmymessage)就是我們自己的訊息對映
最後則是充實訊息響應函式,我自己的如下所示:
lresult cpytestdlg::onmymessage(wparam wparam, lparam lparam)
} return 0;
}
MFC新增自定義訊息
由於mfc中無法通過類嚮導來自定義訊息,所以需要手動新增,主要過程如下 本文基於vs2008下通過執行緒實現資料實時更新的對話方塊運用程式 1.定義訊息 resource.件中 由於很多新控制項也會用到wm user訊息,所以定義wm user 100或更高,避免衝突 define wm updat...
在MFC中新增自定義訊息響應
第 一 在標頭檔案定義訊息字元,n必須大於0,因為wm user以前的用於windows內部定義 define wm my message wm user n 第二 在要響應訊息的窗體的標頭檔案新增 afx msg void onmymessage afx msg 表示的是訊息響應函式,只是乙個標記...
MFC新增使用者自定義訊息
1 傳送訊息 首先在a的標頭檔案中定義這個訊息 define wm usermessage wm user 100所有自定義訊息都是以wm user訊息為基礎加上乙個任意的自然數來表示的。2 接受訊息 物件接受乙個訊息,應該有三部分 在標頭檔案中有該訊息的處理函式的原型 在實現檔案中有接受訊息對映的...