//按键
virtual BOOL PreTranslateMessage(MSG* pMsg);
BOOL CTestDengDlg::PreTranslateMessage(MSG* pMsg)
{
int buID;
buID= GetWindowLong(pMsg->hwnd,GWL_ID);//由窗口句柄获得ID号,GetWindowLong为获得窗口的ID号。
CString strShow = _T("");
switch(pMsg->message)
{
case WM_LBUTTONDOWN:
switch(buID)
{
case IDC_BUTTON1:
//AfxMessageBox(_T("按键1按下"));
break;
case IDC_BUTTON2:
//AfxMessageBox(_T("按键2按下"));
break;
case 0: //点击空白处
GetDlgItem(IDC_STATIC)->SetFocus();
break;
}
break;
case WM_LBUTTONUP:
switch(buID)
{
case IDC_BUTTON1:
AfxMessageBox(_T("按键1弹起"));
break;
case IDC_BUTTON2:
AfxMessageBox(_T("按键2弹起"));
break;
}
break;
}
return CDialogEx::PreTranslateMessage(pMsg);
}
或者
BOOL CTestDengDlg::PreTranslateMessage(MSG* pMsg)
{
CTestDengApp* pApp = (CTestDengApp*)AfxGetApp();
// TODO: 在此添加专用代码和/或调用基类
switch(pMsg->message)
{
case WM_LBUTTONDOWN: //按键按下
if (pMsg->hwnd == GetDlgItem(IDC_BTNOPTCWJOG)->GetSafeHwnd())
{
Ival[OPTMOTRNUM] = 0;
m_motoCtrl->JOG(MOPT_B,Ival);
}
else if(pMsg->hwnd == GetDlgItem(IDC_BTNPOLCWJOG)->GetSafeHwnd())
{
Ival[POLMOTRNUM] = 0;
m_motoCtrl->JOG(MPOL_B,Ival);
}
case WM_LBUTTONUP: //按键弹起
break;
default:
break;
}
return CDialogEx::PreTranslateMessage(pMsg);
}
//焦点事件,先添加事件处理程序再修改所有的EDIT为同一函数,函数里面区别是哪个EDIT
void CTestDengDlg::OnEnSetfocustest()
{
CWnd* pCtrl = CWnd::GetFocus();
int iCtrlID = pCtrl->GetDlgCtrlID();
if(iCtrlID == IDC_EDIT1)
{
;
}
else if(iCtrlID == IDC_EDIT2)
{
;
}
}
void CTestDengDlg::OnEnKillfocustest()
{
CWnd* pCtrl = CWnd::GetFocus();
int iCtrlID = pCtrl->GetDlgCtrlID();
if(iCtrlID == IDC_EDIT1)
{
;
}
else if(iCtrlID == IDC_EDIT2)
{
;
}
}