VC++基础 判断键盘消息
头文件变量声明:
1 BOOL bShiftdown,bShiftup,bShiftB;
消息事件声明:
1 afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 2 afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); 3 afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
增加消息映射:
1 BEGIN_MESSAGE_MAP(CtestnfcView, CView) 2 ON_WM_KEYDOWN() 3 ON_WM_KEYUP() 4 ON_WM_CHAR() 5 // 标准打印命令 6 ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint) 7 ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint) 8 ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CtestnfcView::OnFilePrintPreview) 9 END_MESSAGE_MAP()
按键消息事件的实现:
1 void CtestnfcView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 2 { 3 // TODO: Add your message handler code here and/or call default 4 if(nChar==VK_SHIFT) //判断Shift键是否被按下 5 { 6 //AfxMessageBox("dd"); 7 bShiftdown=TRUE; 8 bShiftup=FALSE; 9 Invalidate(TRUE); //显示信息 10 } 11 12 CView::OnKeyDown(nChar, nRepCnt, nFlags); 13 } 14 void CtestnfcView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) 15 { 16 // TODO: Add your message handler code here and/or call default 17 if(nChar==VK_SHIFT) //判断Shift键是否被释放 18 { 19 //AfxMessageBox("dd"); 20 bShiftup=TRUE; 21 Invalidate(TRUE); //显示信息 22 bShiftdown=FALSE; 23 } 24 CView::OnKeyUp(nChar, nRepCnt, nFlags); 25 } 26 void CtestnfcView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 27 { 28 // TODO: Add your message handler code here and/or call default 29 if((nChar==98)||(nChar==66)) //判断是否敲击了字符键B键或b键 30 { 31 if(bShiftdown) 32 { 33 bShiftB=TRUE; 34 bShiftdown=FALSE; 35 Invalidate(TRUE); //显示信息 36 } 37 } 38 CView::OnChar(nChar, nRepCnt, nFlags); 39 }
界面的重绘:
1 void CtestnfcView::OnDraw(CDC* pDC) 2 { 3 CtestnfcDoc* pDoc = GetDocument(); 4 ASSERT_VALID(pDoc); 5 if (!pDoc) 6 return; 7 // TODO: 在此处为本机数据添加绘制代码 8 if(bShiftdown) //按下了Shift键 9 { 10 pDC->TextOut(20,20,"用户按下了Shift键!"); 11 } 12 if(bShiftup) //释放了Shift键 13 { 14 pDC->TextOut(20,20,"用户释放了Shift键!"); 15 } 16 if(bShiftB) //同时按下了Shift键和B键 17 { 18 pDC->TextOut(20,20,"用户同时按下Shift键和B键!"); 19 bShiftB=FALSE; 20 } 21 }
Above all , Come from network, Only provide for studying!
よろしく,お願いします!