1. 程式人生 > >wince系統中自繪button響應WM_LBUTTONUP和WM_LBUTTONDOWN兩個訊息

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(

IDC_PQRBUTTON)) //正快轉按鍵按下發送指令x10

//       {

//        

         }

}

完成以上兩步即可。

2、第二種方法與第一種方法類似,但要在CMypictureButton類中增加發送給控制元件父視窗WM_LBUTTONUP和WM_LBUTTONDOWN兩個訊息的程式碼,具體如下:


增加的程式碼如20141228以下兩行。


然後在對話方塊中增加on command訊息響應並對訊息進行如下操作即可。


PS注意:

Vs2005開發環境中開發wince記得要在file裡面做如下更改: