2012-04-11 109 views
10

我需要知道用户是否在按住按钮的同时按住了ctrl键。因为它是一个按钮,而不是一个数字,我不能在图上使用'selectionType'等。有没有一种简单的方法来做到这一点?是否按下'Ctrl'键?

谢谢!

回答

10

如何:

modifiers = get(gcf,'currentModifier');  %(Use an actual figure number if known) 
ctrlIsPressed = ismember('control',modifiers); 

下图类有许多有用的特性Current*处理回调时非常有用。这是如何检索当前鼠标位置,所选图形对象和(如此处)按下的按键。这些包括:CurrentAxes,CurrentCharacter,CurrentKey,CurrentModifier,CurrentObject和CurrentPosition。

+0

看起来,cmd修饰符在键被释放后仍然在周围。有什么方法可以找出哪些键目前被按下? – codekitty 2015-01-21 23:30:50

1

按下退出键可重新初始化CurrentModifier。到目前为止,我的解决方案是指导我的用户(在GUI中)按下转义键以恢复默认行为。

总的来说,Matlab的CurrentModifier行为似乎是修饰键“粘”,直到出现以下情况之一:按下不同的修饰符,选择不同的窗口或按下换码键。