¡¡

Ïà¹Ø·ÖÀà 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

¡¡

ƒ