Mouse Button Press distinction between "Left Mouse Button" and "Double Click Button"
Ältere Kommentare anzeigen
I have a Figure on which I load an .png image. I need to distinguish between SelectionType: "Left click" and "Double click". Below is my program. As I run it, when ever a Double click is excecuted it displays a "Left click". How do I make the program identify a "Double click"?
figure(1)
im= imread('Mouse.PNG'); %loading the image
i=imshow(im);
set(i,'buttondownfcn',@mybttnfcn); %setting the callback function
function mybttnfcn(h,~)
haxes = get(h,'parent'); %axes properties
hfigure = get(haxes,'parent'); %figure properties
b = get(hfigure,'selectiontype'); %identifying Selectiontype
xy = get(gca,'CurrentPoint'); %getting current points
if strcmpi(b,'normal')
text(xy(1,1),xy(1,2),'Left click') %displaying Left-click
elseif strcmp(b,'extend')
text(xy(1,1),xy(1,2),' Middle button') %displaying Middle-click
elseif strcmpi(b,'alt')
text(xy(1,1),xy(1,2),'Right click') %displaying Right-click
elseif strcmpi(b,'open')
text(xy(1,1),xy(1,2),'Double-click') %displaying Double-click
else
text(xy(1,1),xy(1,2),'Retry')
end
end
Akzeptierte Antwort
Weitere Antworten (1)
Tushar
am 20 Feb. 2023
0 Stimmen
Hi,
1. You can add a delay to distinguish single click from a double click, as your double clicks were perceived as two times single click.
You can have a look at this answer, which solves the same issue which you are facing:
2. But, if you even don't want to burn half-second each time, then you could add a click threshold, and take action on single or double type of clicks.
For this you can have a look here:
Hope it helps!
2 Kommentare
Vinay JR
am 26 Apr. 2023
Virenbhai Monpara
am 10 Mär. 2025
This solution works for me. Thanks!
Kategorien
Mehr zu Interactive Control and Callbacks finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
