2012-08-08 71 views
1

當鼠標移動到按鈕上並且鼠標離開按鈕時(不會涉及單擊),是否可以捕獲鼠標懸停事件。使用WindowButtonMotionFcn,這很容易處理數字。但是,對於按鈕或其他類型的對象,我不知道。如何在按鈕上捕獲鼠標移動

回答

1

雖然我不認爲它可能直接註冊回調與UIControls如果你聰明並不需要。它有點額外的工作,但如果你知道圖中按鈕的位置,你可以檢查鼠標光標是否在按鈕上,並讓你的UI做出相應的響應。

有一點需要注意的是,如果您使用Normalized單位創建按鈕,則必須在調整圖形大小時重新計算其位置。您可以使用圖形的resizeFcn屬性來執行此操作。註冊一個電話回來,做類似以下內容:

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

雖然這並不能爲你提供你正在尋找它應該足以爲你提供你正在努力實現的功能的精確解。

1

您可以使用WindowButtonMotionFcn將您自己的回調函數添加到您想要執行的操作上。

set(gcf,'WindowButtonMotionFcn ',your_callback); 

如果谷歌它,你或許能找到更多的信息,初級講座,顯示一些東西,你可以用數字去的鏈接。如果你知道按鈕pos和遊標pos,你的cal總是以這種方式編寫測試。

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

+0

WindowButtonMotionFcn是處理過的人物鼠標移動沒有結束對這一數字的按鈕。無論如何感謝 – 2012-08-09 18:10:38

+0

爲什麼你不使用Java按鈕並通過調用來處理它。 MatLab支持Java,所以如果它不太難,你總是可以使用它。如果沒有,你可以試試http://www.mathworks.com/matlabcentral/answers – 2012-08-09 19:13:53

相關問題