How can I set the mouse pointer when hovering over a certain UICONTROL or UIPANEL in MATLAB 7.7 (R2008b)?

1 visualizzazione (ultimi 30 giorni)
I want my mouse pointer to change whenever it is over a specific UICONTROL or UIPANEL. I know I can set the 'Pointer' property for a whole figure, but I need to do this for only a specific control.

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 14 Set 2017
There is a 'WindowButtonMotionFcn' for figures, if you combine this with some logic you can change the pointer when you are over a certain UIPANEL; see the following example:
function example1
% Create the figure and define the "MouseMove" Callback
f = figure('WindowButtonMotionFcn',@MoveCallback);
% Define where to place your UIPANEL
up.x = 50;
up.y = 150;
up.width = 100;
up.height = 200;
% Create the UIPANEL
up.handle = uipanel(f,'Units','Pixels','Position',[up.x up.y up.width up.height])
function MoveCallback(source, event)
% Get the current position of your mouse pointer
p = get(f,'CurrentPoint');
% Check if the mouse is currently over the UIPANEL
if (p(1) > up.x) && (p(1) < up.x + up.width) ...
  && (p(2) > up.y) && (p(2) < up.y + up.height)
% If so change the pointer
set(f,'Pointer','circle')
else
% Otherwise set/keep the default arrow pointer
set(f,'Pointer','arrow')
end
end
end

Più risposte (0)

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Prodotti


Release

R2008b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by