正文

窗体处理键盘输入代码2009-09-29 21:19:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bigpig/48689.html

分享到:

此代码仅支持ctrl \up\down\shift的简单处理。组合键还在学习中。有知道的可以共享一下。先谢谢啦   LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam){ HDC hdc; PAINTSTRUCT ps; TEXTMETRIC tm; //PIONT pt; char *str[]= {       "您按了UP键",       "您按了SHIFT键",       "您按了CTRL和A键",       "您按了DOWN键" }; //RegisterHotKey(hWnd,1,VK_CONTROL,VK_A); switch(message) { case WM_KEYDOWN:  {   switch (wParam)   {   case VK_UP:    icount=1;    break;   case VK_SHIFT:    icount=2;    break;   case VK_CONTROL:           icount=3;    break;   case VK_DOWN://&&VK_B:    icount=4;    //str[20]="您按了SHIFT和B键";    break;   default:    MessageBox(hWnd,"请输入正确的指令","输入提示",MB_OK);   }   InvalidateRect(hWnd,NULL,TRUE);   break;  }  case WM_PAINT:  hdc=BeginPaint(hWnd,&ps);  GetTextMetrics(hdc,&tm);  TextOut(hdc,0,0,"请按下如下按键",14);  if(icount==1)  {   TextOut(hdc,0,tm.tmHeight+tm.tmInternalLeading,str[0],lstrlen(str[0]));  // InvalidateRect(hWnd,NULL,TRUE);  }  else if(icount==2)  {   TextOut(hdc,0,tm.tmHeight+tm.tmInternalLeading,str[1],lstrlen(str[1]));  // InvalidateRect(hWnd,NULL,TRUE);  }  else if(icount==3)  {   TextOut(hdc,0,tm.tmHeight+tm.tmInternalLeading,str[2],lstrlen(str[2]));  // InvalidateRect(hWnd,NULL,TRUE);  }  else if(icount==4)  {   TextOut(hdc,0,tm.tmHeight+tm.tmInternalLeading,str[3],lstrlen(str[3]));   //InvalidateRect(hWnd,NULL,TRUE);  }  else  {   MessageBox(hWnd,"你好","友情提示",MB_OK);  }  EndPaint(hWnd,&ps);  break; case WM_DESTROY:  PostQuitMessage(0);  break; default:  return DefWindowProc(hWnd,message,wParam,lParam); } return 0;}

阅读(1871) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册