wince系統中自繪button響應WM_LBUTTONUP和WM_LBUTTONDOWN兩個訊息
由於好多MFC中的各種CButton類都不支援wince系統,所以這幾天主要搞定一個問題:解決適用於wince系統中CMypictureButton類中自繪button響應WM_LBUTTONUP和WM_LBUTTONDOWN兩個訊息,主要有以下兩種方法:
1、通過在對話方塊中擷取由按鍵觸發的WM_LBUTTONUP和WM_LBUTTONDOWN兩個訊息,然後識別座標確定是由CMypictureButton控制元件上產生,如若是則進行響應處理。具體方法如下:
A.在對話方塊標頭檔案中宣告 virtualBOOL CmotorcontrolDlg::PreTranslateMessage(MSG* pMsg);
B.寫CmotorcontrolDlg::PreTranslateMessage(MSG* pMsg)函式,具體如下:
//BOOL CmotorcontrolDlg::PreTranslateMessage(MSG* pMsg)
//{
// // TODO: Add your specialized code here and/or call the base class
// if(pMsg->message == WM_LBUTTONDOWN)
// {
// if(WindowFromPoint(pMsg->pt) == GetDlgItem(
// {
// …
}
}
完成以上兩步即可。
2、第二種方法與第一種方法類似,但要在CMypictureButton類中增加發送給控制元件父視窗WM_LBUTTONUP和WM_LBUTTONDOWN兩個訊息的程式碼,具體如下:
增加的程式碼如20141228以下兩行。
然後在對話方塊中增加on command訊息響應並對訊息進行如下操作即可。
PS注意:
Vs2005開發環境中開發wince記得要在file裡面做如下更改: