我做了个计算器,已经设置了自定义按键!可是回车键和ESC键分别是对选中按键再次键入和退出程序的功能!(这是系统默认的),而我想把回车和ESC对应成成计算器”=”号和”AC”(即清零)的按键!请问可否实现!BOOL CCalculatorDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case 48:OnBUTTONzero();break;
case 49:OnButton01();break;
case 50:OnButton02();break;
case 51:OnButton03();break;
case 52:OnButton04();break;
case 53:OnButton05();break;
case 54:OnButton06();break;
case 55:OnButton07();break;
case 56:OnButton08();break;
case 57:OnButton09();break;
case 96:OnBUTTONzero();break;
case 97:OnButton01();break;
case 98:OnButton02();break;
case 99:OnButton03();break;
case 100:OnButton04();break;
case 101:OnButton05();break;
case 102:OnButton06();break;
case 103:OnButton07();break;
case 104:OnButton08();break;
case 105:OnButton09();break;
case 107:OnBUTTONplus();break;
case 109:OnBUTTONminus();break;
case 106:OnBUTTONmulti();break;
case 111:OnBUTTONdiv();break;
case 8:OnBUTTONbs(); break;
case 16:OnBUTTONequal();break;
case 33:OnBUTTONallclean();break;
case 34:OnBUTTONclean();break;
case 110:OnBUTTONdian();break;
}
CString strwParam;
strwParam.Format("%d ",pMsg->wParam);
CDC* pDC = GetDC();
pDC->TextOut(10,10,strwParam);
ReleaseDC(pDC); }
return CDialog::PreTranslateMessage(pMsg);
}
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case 48:OnBUTTONzero();break;
case 49:OnButton01();break;
case 50:OnButton02();break;
case 51:OnButton03();break;
case 52:OnButton04();break;
case 53:OnButton05();break;
case 54:OnButton06();break;
case 55:OnButton07();break;
case 56:OnButton08();break;
case 57:OnButton09();break;
case 96:OnBUTTONzero();break;
case 97:OnButton01();break;
case 98:OnButton02();break;
case 99:OnButton03();break;
case 100:OnButton04();break;
case 101:OnButton05();break;
case 102:OnButton06();break;
case 103:OnButton07();break;
case 104:OnButton08();break;
case 105:OnButton09();break;
case 107:OnBUTTONplus();break;
case 109:OnBUTTONminus();break;
case 106:OnBUTTONmulti();break;
case 111:OnBUTTONdiv();break;
case 8:OnBUTTONbs(); break;
case 16:OnBUTTONequal();break;
case 33:OnBUTTONallclean();break;
case 34:OnBUTTONclean();break;
case 110:OnBUTTONdian();break;
}
CString strwParam;
strwParam.Format("%d ",pMsg->wParam);
CDC* pDC = GetDC();
pDC->TextOut(10,10,strwParam);
ReleaseDC(pDC); }
return CDialog::PreTranslateMessage(pMsg);
}
{
case VK_RETURN: // 屏蔽回车
return TRUE;
case VK_ESCAPE: // 屏蔽Esc
return TRUE;
}
这句改为 return true;