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

5 views (last 30 days)
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.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 14 Sep 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

More Answers (0)

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Products


Release

R2008b

Community Treasure Hunt

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

Start Hunting!