MFC 多個控制元件用同一個訊息響應函式
阿新 • • 發佈:2019-02-15
最近做一個小工具,裡面用到很多的combox控制元件,為每個控制元件都新增一個訊息響應函式感覺不太方便,太重複了,於是都呼叫同一個響應函式,但是問題來了,檢測控制元件變化的函式沒有引數,要在響應函式裡邊找到對應的ID,要花些心思,功夫不負有心人,解決方法如下:
GetCurrentMessagevoid CSQliteMFCDlg::OnCbnSelchangeComboxAny() { // TODO: 在此新增控制元件通知處理程式程式碼 UINT ID = LOWORD(GetCurrentMessage()->wParam); switch(ID) { case IDC_COMBO1: break; case IDC_COMBO2: break; case IDC_COMBO3: break; case IDC_COMBO4: break; case IDC_COMBO5: break; case IDC_COMBO6: break; case IDC_COMBO7: break; case IDC_COMBO8: break; case IDC_COMBO9: break; case IDC_COMBO10: break; case IDC_COMBO11: break; default: break; } }
功能:獲取這個視窗當前處理的訊息的指標。 語法: static const MSG* PASCAL GetCurrentMessage(); [1] 返回值: 返回一個指向MSG結構的指標,該結構中包含了視窗當前處理的訊息。