MFC下のキーボード応答コード

2748 ワード

MFC下のキーボード応答コード
PreTranslateMessage(MSG*pMsg)関数に次の値を追加します.
1、応答リターンキー:
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
    MessageBox("           !");

2、応答上、下、左、右ボタン:
CWnd* pWndNext;
if (pMsg->message==WM_KEYDOWN){
        switch (pMsg->wParam){
           case VK_LEFT:
           	AfxMessageBox("  ");
           	break;
           case VK_RIGHT:
           	AfxMessageBox("  ");
           	break;
           case VK_UP:
           	AfxMessageBox(" ");
           	break;
           case VK_DOWN:
		AfxMessageBox(" ");
		pWndNext = GetNextDlgTabItem(GetFocus());//       
		if (pWndNext) 
		{
			pWndNext->SetFocus();
		}
           	break;
           case VK_SPACE:
           	AfxMessageBox("  ");
           	break;
       }
    }

3、VK値リスト
VK_CANCEL   		Ctrl+Break   
VK_TAB         		Tab   
VK_RETURN   		Enter     
VK_SHIFT     		Shift   
VK_CONTROL   		Ctrl   
VK_MENU        	 	Alt   
VK_LBUTTON 		01        
VK_RBUTTON 		02        
VK_CANCEL    		03     Ctrl+C Ctrl+Break   
VK_MBUTTON 		04        
VK_BACK 		08 Backspace    
VK_TAB 			09 Tab    
VK_CLEAR                0C Clear    
VK_RETURN               0D Enter    
VK_SHIFT                10 Shift    
VK_CONTROL 		11 Ctrl    
VK_MENU 		12 Arl    
VK_PAUSE                13 Pause    
VK_CAPITAL 		14 Capslock    
VK_ESCAPE               1B Ese    
VK_SPACE                20 SpaceBar    
VK_PRIOR                21 PgUp    
VK_NEXT 		22 PgDn    
VK_END 			23 End    
VK_HOME 		24 Home    
VK_LEFT 		25 Left   Arrow    
VK_UP 			26 Up   Arrow    
VK_RIGHT                27 Right   Arrow    
VK_DOWN 		28 Down   Arrow    
VK_SELECT            	29 Select    
VK_EXECUTE 		2B Execute    
VK_SNAPSHOT 		2C PrintScreen    
VK_INSERT            	2D Ins    
VK_DELECT            	2E Del    
VK_HELP 		2F Help    
VK_0 			30 0    
.........
VK_9 			39 9    
VK_A 			41 A    
… … …   
VK_Z 			5A Z    
VK_NUMAPD0 		60    0    
… … …   
VK_NUMAPD9 		69    9    
VK_MULTIPY 		6A       
VK_ADD 			6B       
VK_SEPARATOR 		6C Separator    
VK_SUBSTRACT 		6D       
VK_DECIMAL 		6E        
VK_DIVIDE           	6F       
VK_F1 			70 F1    
… … …   
VK_F24 			87 F24    
VK_NUMLOCK 		90 NumLock    
VK_SCROLL            	91 ScrollLock    

VK_ESCAPE         	Esc   
VK_SPACE           	Space   
VK_PRIOR           	Page   Up   
VK_NEXT             	Page   Down   
VK_END               	End   
VK_HOME             	Home   
VK_LEFT             	        
VK_UP   		     
VK_RIGHT   		     
VK_DOWN   		     
VK_DELETE         	Delete   
VK_INSERT         	Inser   
VK_NUMPAD0~VK_NUMPAD9	     0-9    
VK_F1-VK_f12        	F1-F12