MFC中新增自己定義的訊息

2021-06-07 08:47:08 字數 1668 閱讀 7019

由於自己要做乙個拼音輸入模組,比如我按下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 接受訊息 物件接受乙個訊息,應該有三部分 在標頭檔案中有該訊息的處理函式的原型 在實現檔案中有接受訊息對映的...