此代码仅支持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;}

评论