如何通过按钮捕获鼠标移动

时间:2012-08-08 22:33:16

标签: matlab

当鼠标移动到按钮上时以及当鼠标离开按钮时,是否可以捕获鼠标悬停事件(不涉及点击)。使用WindowButtonMotionFcn可以很容易地使用数字。但是,对于我不知道的按钮或其他类型的对象。

2 个答案:

答案 0 :(得分:1)

虽然我不认为可以用UIControl直接注册回调,但如果你聪明的话实际上并不需要。它有一些额外的工作,但如果您知道图中按钮的位置,您可以检查鼠标光标是否在按钮上并让您的UI做出相应的响应。

要记住的一件事是,如果您使用Normalized单位创建按钮,则在调整图形大小时,您必须重新计算其位置。您可以使用图的resizeFcn属性来执行此操作。注册一个类似于以下内容的回叫:

u = get(button, 'Units');
set(button,'Units');
buttonPosition = get(button,'Position');
set(button, 'Units', u);

虽然这不能为您提供您正在寻找的确切解决方案,但它应该足以为您提供您想要实现的功能。

答案 1 :(得分:1)

您可以使用WindowButtonMotionFcn添加自己的回调函数。

set(gcf,'WindowButtonMotionFcn ',your_callback);

如果你谷歌它可能会找到更多的信息,下面的链接显示你可以用数字的一些事情。如果您知道按钮位置和光标位置,那么您总是以这种方式编写测试。

http://www.mathworks.com/help/techdoc/ref/figure_props.html