现在的位置: 首页 > 综合 > 正文

MFC 键盘按键

2018年02月09日 ⁄ 综合 ⁄ 共 2184字 ⁄ 字号 评论关闭

VK_LBUTTON鼠标左键
VK_RBUTTON鼠标右键
VK_CANCEL  Control-break过程
VK_MBUTTON鼠标中键
VK_BACK BACKSPACE键
VK_TAB  TAB键
VK_CLEAR  CLEAR键
VK_RETURN DENTER键
VK_SHIFT  SHIFT键
VK_CONTROL   CTRL键
VK_MENU    ALT键
VK_PAUSE   PAUSE键
VK_CAPITAL   CAPSLOCK键
VK_ESCAPE   ESC键
VK_SPACE    SPACEBAR
VK_PRIOR   PAGEUP键
VK_NEXT   PAGEDOWN键
VK_END    END键
VK_HOME    HOME键
VK_LEFT    LEFTARROW键
VK_UP    UPARROW键
VK_RIGHT   RIGHTARROW键
VK_DOWN   DOWNARROW键
VK_SELECT   SELECT键
VK_EXECUTE   EXECUTE键
VK_SNAPSHOT  PRINTSCREEN键(用于Windows3.0及以后版本)
VK_INSERT   INS键
VK_DELETE   DEL键
VK_HELP    HELP键
///////////////////////////////////////////////////
对于字母键和非小键盘上的数字键,直接在单引号中加入该键就行.
比如:a键:'A'
1键:'1'
//////////////////////////////////////////////
VK_LWIN    LeftWindows键(Microsoft自然键盘)
VK_RWIN    RightWindows键(Microsoft自然键盘)
VK_APPS   Applications键(Microsoft自然键盘)
VK_NUMPAD0  数字小键盘上的0键
VK_NUMPAD1  数字小键盘上的1键
VK_NUMPAD2  数字小键盘上的2键
VK_NUMPAD3  数字小键盘上的3键
VK_NUMPAD4  数字小键盘上的4键
VK_NUMPAD5  数字小键盘上的5键
VK_NUMPAD6  数字小键盘上的6键
VK_NUMPAD7  数字小键盘上的7键
VK_NUMPAD8  数字小键盘上的8键
VK_NUMPAD9  数字小键盘上的9键
VK_MULTIPLY  Multiply键(小键盘*键)
VK_ADD       Add键
VK_SEPARATOR  Separator键
VK_SUBTRACT   Subtract键
VK_DECIMAL    Decimal键(小键盘.键)
VK_DIVIDE    Divide键(小键盘/键)
VK_F1     F1键
VK_F2     F2键
VK_F3   F3键
VK_F4   F4键
VK_F5   F5键
VK_F6  F6键
VK_F7  F7键
VK_F8  F8键
VK_F9   F9键
VK_F10   F10键
VK_F11   F11键
VK_F12  F12键
VK_F13   F13键
VK_F14   F14键
VK_F15  F15键
VK_F16 F16键
VK_F17  F17键
VK_F18 F18键
VK_F19    F19键
VK_F20     F20键
VK_F21    F21键
VK_F22    F22键
VK_F23    F23键
VK_F24    F24键
VK_NUMLOCK     NUMLOCK键
VK_SCROLL      SCROLLLOCK键
VK_ATTN     Attn键
VK_CRSEL     CrSel键
VK_EXSEL      ExSel键
VK_EREOF    EraseEOF键
VK_PLAY     Play键
VK_ZOOM     Zoom键
VK_OEM_CLEAR     Clear键

参考:

Q:CTRL+V在PreTranslateMessage()中如何取得?

A:if(pMsg->message==WM_KEYDOWN&&pMsg->wParam=='V'&&GetKeyState(VK_CONTROL)&0x80)

PAGEUP:VK_PRIOR
PAGEDOWN:VK_NEXTPreTranslateMessage中可以拦截组合键

if(pMsg->message==WM_KEYDOWN)
{
if(::GetKeyState(VK_CONTROL)<0)//如果是Shift+X这里,改成VK_SHIFT
{//组合键不能区分按键的大小写,
keymsg=pMsg->wParam;//GetKeyState只能用WM_KEYDOWN中
strKey.Format("按下Ctrl+%c",keymsg);
}

响应Ctrl+X键
BOOLCMydilog::PreTranslateMessage(MSG*pMsg)
{
//TODO:Addyourspecializedcodehereand/orcallthebaseclass

if(pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
caseVK_ESCAPE:
SetFocus();
returnTRUE;
case'X':
if(::GetKeyState(VK_CONTROL)<0)//如果是Shift+X这里就
//改成VK_SHIFT
MessageBox("hello");
returnTRUE;

}
}
returnCDialog::PreTranslateMessage(pMsg);
}

抱歉!评论已关闭.