由于好多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里面做如下更改: