如何判断一个菜单命令是由鼠标激发的还是由键盘快捷键激发的?(50分)

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

brightangel

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,先谢谢大家!
 
有区别吗?如果想监视键盘的话,可以用接管form的WndProc函数,自己判断啦。

快捷键是不会被form.onkeydown事件接收到的。
 
我想在按键盘快捷键时直接进行某项操作,
而用鼠标操作时则先提示,用户确认后再执行。
也就是按快捷键简化操作。
所以我想区分鼠标触发和键盘触发。
 
用一个比较笨的方法:
你可以把你要进行的操作放在独立的函数中,然后在按键盘快捷键时直接进行这项操作
(调用该操作函数),而用鼠标操作时则先提示再调用该操作函数。

这个办法不先进,但肯定能解决问题。
 
如果是这样, 那不该这么实现, 思路不对.

好的方法是用组合键进行直接运行, 比如: 按del键或鼠标点击"删除"命令, 执行提示性
删除, 有对话框弹出, 而按住shift键后再按del键或点击"删除"命令就直接删除, 不给
提示. 这样比较符合习惯.
 
可以分别对他们编程吗!处理键盘按犍喝鼠标案健的时间就可以了
 
1.判断是否为键盘快捷键:
大概思路是拦截wm_hotkey消息:
private
procedure wmhotkey(var msg:Twmhotkey);message wm_hotkey;
end;
implemention
procedure Tform1.wmhotkey(var msg:Twmhotkey);
begin
//在此判断msg的消息是否为键盘快捷键 ;
end;
2.判断是否为鼠标激发:
可以监视鼠标的消息.详情请自己参考帮助.
 
同意Iknow的意见
最好参照M$windows的统一风格,用shift+快捷键表示强制的、增加某些
功能的意思。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部