如何判断键盘状态(100分)

  • 主题发起人 主题发起人 baibaichen
  • 开始时间 开始时间
B

baibaichen

Unregistered / Unconfirmed
GUEST, unregistred user!
Windows API 中关于键盘状态的函数 :GetKeyState,GetAsyncKeyState等如何用?<br><br>我在程序中需要实现这样一个功能:当我按下鼠标左键移动时,<br>1、如果我按下Ctrl,则表示我在弹起鼠标左键时调用功能A<br>2、如果我按下ALT,则表示我在弹起鼠标左键时调用功能B<br><br>注意:在按下鼠标左键移动时,可以随意切换Ctrl和ALT,我需要在鼠标移动的消息中去判断Ctrl 或 ALT 是否按下,如果按下我则需要改变当前的光标!<br><br>
 
WM_MOUSEMOVE, WM_LBUTTONUP, WM_LBUTTONDOWN等鼠标<br>消息中不是有Ctrl 和 Alt键的状态吗?为什么还要调用API来检测?<br><br>GetKeyState( VK_CONTROL ) and $10 = $10 表示CTRL键被按下<br>GetKeyState( VK_MENU ) and $10 = $10 表示ALT键被按下<br>
 
WM_MOUSEMOVE, WM_LBUTTONUP, WM_LBUTTONDOWN鼠标消息的缺陷是,如果我不移动鼠标<br>则光标不会改变。所以需要在 WM_SETCURSOR 消息时来处理,但这个消息没有键盘的状态!<br><br>
 
qiandeng, 你有办法否?
 
同意jlg的做法
 
光从检查键盘和鼠标的状态来说,我觉得jlg的意见已经可以了<br>只是不知道你是不是这个意思
 
后退
顶部