| ¡¡
Ïà¹Ø·ÖÀà VCÈëÃÅ ->VC ->VCShare Ê® ÏûÏ¢¹Ø¼ü×Ö VC¡¡ÏûÏ¢PreTranslateMessageº¯Êý¹ËÃû˼Òå,¾ÍÊÇÔÚÏûÏ¢±»·Òë֮ǰ,×öµÄһЩÊÂ.ÎÒÃÇ¿ÉÒÔÆÁ±ÎÒ»¸ö¼ü»òÒ»¸öÃüÁî.ÏÂÃæÊÇһЩ³£ÓÃÏûÏ¢µÄÏà¹ØÐÅÏ¢.ÕâЩÐÅÏ¢·ÅpMsgÖÐ. WM_KEYDOWN nVirtKey = (int) wParam; /*Ðé¼üÖµ,ºÍascllÂëÓÐÐí¶àÏàͬµÄµØ·½ */ lKeyData = lParam; /*ºÍÓ²¼þÓÐ¹Ø */ WM_CHAR chCharCode = (TCHAR) wParam; lKeyData = lParam; WM_COMMAND wNotifyCode = HIWORD(wParam); wID = LOWORD(wParam); hwndCtl = (HWND) lParam; WM_LBUTTONDOWN fwKeys = wParam; // xPos = LOWORD(lParam); // Êó±êºá×ø±ê yPos = HIWORD(lParam); // Êó±ê×Ý×ø±ê fwKeys MK_CONTROL MK_LBUTTON MK_MBUTTON MK_RBUTTON MK_SHIFT WM_MOUSEMOVE fwKeys = 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); } ÉÏһƪ:¾Å ¼¯ºÏÀàʹÓÃÐĵà ÏÂһƪ:ʮһ xml ¡¡ |
|