消息PreTranslateMessage函数顾名思义,就是在消息被翻译之前,做的一些事.我们可以屏蔽一个键或一个命令.下面是一些常用消息的相关信息.这些信息放pMsg中.WM_KEYDOWNnVirtKey (int) wParam; /*虚键值,和ascll码有许多相同的地方 */lKeyData lParam; /*和硬件有关 */WM_CHARchCharCode (TCHAR) wParam;lKeyData lParam;WM_COMMANDwNotifyCode HIWORD(wParam);wID LOWORD(wParam);hwndCtl (HWND) lParam;WM_LBUTTONDOWNfwKeys wParam; //xPos LOWORD(lParam); // 鼠标横坐标yPos HIWORD(lParam); // 鼠标纵坐标fwKeysMK_CONTROL MK_LBUTTON MK_MBUTTON MK_RBUTTON MK_SHIFTWM_MOUSEMOVEfwKeys wParam;xPos LOWORD(lParam);yPos HIWORD(lParam);下面这个例子演示了,PreTranslateMessage的常用用法.BOOL CPreTranslateDlg::PreTranslateMessage(MSG* pMsg){if(WM_KEYDOWN pMsg-message )if(0x30 (int) pMsg-wParam){return true; /*禁止在编辑框中输入0(ascll 0x30)*/}if(WM_CHAR pMsg-message )if(A (TCHAR) pMsg-wParam){return true; /*禁止在编辑框中输入A*/}if(WM_MOUSEMOVE pMsg-message)if(MK_CONTROL pMsg-wParam) /*当ctrl被按下鼠标移动时,显示相关信息*/{int xPos LOWORD(pMsg-lParam);int yPos HIWORD(pMsg-lParam);CString str ;str.Format(鼠标的坐标%d %d,xPos,yPos);AfxMessageBox(str);}if(WM_COMMAND pMsg-message)if(ID_1 LOWORD(pMsg-wParam))//禁止菜单项ID_1,注意按钮发送的是BN_CLICKED{return true;}return CDialog::PreTranslateMessage(pMsg);}计算几何为骨排样优化为魂作品一亲士套料工具箱https://qinshi.blog.csdn.net/article/details/167222655作品二亲士CAD工具箱https://qinshi.blog.csdn.net//article/details/156510081经典文章推荐二维排样https://qinshi.blog.csdn.net/article/details/164169163万物皆数学https://qinshi.blog.csdn.net/article/details/143057305查阅鄙人的博文请点击博文下载学院导航https://qinshi.blog.csdn.net/article/details/163717324活到老学到老。明朝中后期大约50%的进士能当上堂官(副部及更高)能当上堂官的举人只有十余人。子墨子言之事无终始无务多业。也就是我们常说的专业的人做专业的事。