在OnKeyDown事件中判断鼠标状态

hyz_cs 2012-11-14 08:23:56
我想判断按键的时候鼠标左键或右键是否按住.
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2012-11-15
  • 打赏
  • 举报
回复
不要把简单的事情复杂化。 在OnKeyDown事件中判断:
bool bMRButtonDown = ::GetAsyncKeyState(VK_RBUTTON) & 0x8000;
Caption = bMRButtonDown? "鼠标右键按下": "鼠标右键弹起";
缘中人 2012-11-15
  • 打赏
  • 举报
回复
设个标志, 可以在鼠标按下设为1,弹起为0 然后在OnKeyDown里判断这个标志
hyz_cs 2012-11-15
  • 打赏
  • 举报
回复
引用 4 楼 ccrun 的回复:
不要把简单的事情复杂化。 在OnKeyDown事件中判断: C/C++ code?12bool bMRButtonDown = ::GetAsyncKeyState(VK_RBUTTON) & 0x8000;Caption = bMRButtonDown? "鼠标右键按下": "鼠标右键弹起";
我刚刚又试了一下,用GetKeyState(VK_RBUTTON),这样也可以获取鼠标按键状态的,原来还以为只可以用来获取的呢.
hyz_cs 2012-11-15
  • 打赏
  • 举报
回复
引用 4 楼 ccrun 的回复:
不要把简单的事情复杂化。 在OnKeyDown事件中判断: C/C++ code?12bool bMRButtonDown = ::GetAsyncKeyState(VK_RBUTTON) & 0x8000;Caption = bMRButtonDown? "鼠标右键按下": "鼠标右键弹起";
嗯,就是想找这样的办法,因为我在鼠标按键事件中判断键盘就是用的GetKeyState(VK_RSHIFT). 另外上面那个方法也有考虑过,但是有些其它情况,比如按住鼠标右键之后,鼠标可能移出窗口之外,这样就不能在弹起事件中清除这个标志,还要想办法清除这个标志.
hyz_cs 2012-11-14
  • 打赏
  • 举报
回复
额..这个... 我没说错,我就是想在键盘按键按下的时候判断鼠标的的左键或右键是不是已经按住了. 也就是按住鼠标右键,再按键盘的某个键实现一个功能.
xjq2003 2012-11-14
  • 打赏
  • 举报
回复
OnKeyDown事件是键盘按键按下去的事件, OnMouseDown事件是鼠标按键按下去的事件 void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if( Button==0); //左键按下 if( Button==1); //右键按下 }

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧