1

マウスがボタンの上に移動したとき、およびマウスがボタンを離れたときのマウスオーバー イベントをキャプチャすることは可能ですか (クリックは関係ありません)。これは、 を使用して図で簡単に行うことができWindowButtonMotionFcnます。ただし、ボタンやその他の種類のオブジェクトについてはわかりません。

4

2 に答える 2

1

賢いのであれば、UIControlsにコールバックを直接登録することは不可能だと思いますが、実際に登録する必要はありません。少し余分な作業が必要ですが、図内のボタンの位置がわかっている場合は、マウスカーソルがボタンの上にあるかどうかを確認し、それに応じてUIを応答させることができます。

覚えておくべきことの1つは、Normalized単位を使用してボタンを作成する場合、図のサイズが変更されたときにボタンの位置を再計算する必要があるということです。resizeFcnこれを行うには、Figureのプロパティを使用できます。次のようなコールバックを登録します。

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

これはあなたが探している正確な解決策をあなたに提供しませんが、あなたが達成しようとしている機能をあなたに提供するのに十分であるはずです。

于 2012-08-09T00:10:58.120 に答える
1

WindowButtonMotionFcn を使用して、やりたいことに独自のコールバック関数を追加できます。

set(gcf,'WindowButtonMotionFcn ',your_callback);

グーグルで検索すると、より多くの情報を見つけることができるかもしれません。ボタンの位置とカーソルの位置を知っていれば、常にそのようにテストを書くことができます。

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

于 2012-08-09T13:54:53.257 に答える