MFC為控制項新增訊息響應函式(事件)

2021-07-11 15:36:36 字數 638 閱讀 1578

前言:vs利用嚮導新增成員變數時可能會遇到新增不了某個匯入類的成員變數,就需要在**裡手動新增。

1、右鍵控制項屬性,修改控制項id ——>開啟resource.h,修改控制項id為新修改的id(保持資源id一致)

#define idc_web                         6

2、在標頭檔案新增類成員(變數) ——>cbuttonst m_btnweb;

3、在原始檔函式dodataexchange(cdataexchange* pdx) 裡新增資料交換校驗函式

ddx_control(pdx, idc_web, m_btnweb);

4、在原始檔oninitdialog() 初始化函式裡初始化變數

m_btnweb.seticon(idi_web1);

5、在原始檔新增訊息對映巨集(指定哪個控制項鏈結到哪個處理函式中去,沒訊息對映則控制項不會響應子類的重寫函式)

begin_message_map(cmydlg, cdialog)

//}afx_msg_map

end_message_map()

6、在原始檔新增訊息響應函式

void cmydlg::onopenurl() 

{//do something

VC 中新增訊息響應函式

我們舉乙個實際的例子來說明該段過程.例如在對話方塊中設定乙個按鈕,每隔3秒鐘會自動的彈出message對話方塊 1 首先在標頭檔案或cpp檔案中定義乙個訊息 define click message box wm user 100 2 然後在訊息對映巨集裡面新增函式宣告 afx msg declar...

MFC 多個控制項用同乙個訊息響應函式

最近做乙個小工具,裡面用到很多的combox控制項,為每個控制項都新增乙個訊息響應函式感覺不太方便,太重複了,於是都呼叫同乙個響應函式,但是問題來了,檢測控制項變化的函式沒有引數,要在響應函式裡邊找到對應的id,要花些心思,功夫不負有心人,解決方法如下 void csqlitemfcdlg oncb...

為自定義工具欄按鈕新增訊息響應函式

在文件程式中,需要自定義工具欄。當利用資源編輯器為工具欄新增乙個自定義按鈕後,執行程式時該按鈕成灰色無效狀態。之所以會這樣,是因為該按鈕沒有相應的訊息響應函式。下面,我們在檢視類中為id為id my search的新工具欄按鈕新增訊息響應函式。1 在view類標頭檔案中新增命令訊息響應函式的宣告 a...