Matlab GUI 鼠标事件(二)

本文介绍如何在MATLAB中利用WindowButtonDownFcn属性设置鼠标按键事件的回调函数,并通过SelectionType属性判断不同类型的鼠标操作,包括单击、双击、组合键点击等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WindowButtonDownFcn是MATLAB绘图窗口的一个属性,用以指定响应鼠标按键的回调函数

如果你是用GUIDE做的界面,就在Figure的Inspector里面找到该属性,按右侧的编辑按钮就会打开M文件编辑器,然后直接写回调函数的内容即可。


如果用M语言写GUI,可直接设置figure的WindowButtonDownFcn属性为回调函数的句柄。

 

回调函数的命名任意,里面需要获取另外一个属性SelectionType以判断鼠标按键的类型,可能的值包括(Windows系统上):

  • normal:代表单击鼠标左键;

  • extend:代表Shift+左键,或者同时按左右键;

  • alt:代表Ctrl+左键,或者单击右键;

  • open:代表双击鼠标任意键。

 

下面给你一个用M文件直接写GUI的简单例子,供参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function zd1987822523589255467
figure('WindowButtonDownFcn',@local_WindowButtonDownFcn)
 
function local_WindowButtonDownFcn(varargin)
% hObject    handle to figure1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
switch (get(gcbf,'SelectionType'))
    case 'normal'
        str = '单击鼠标左键';
    case 'extend'
        str = 'Shift+左键,或者同时按左右键';
    case 'alt'
        str = 'Ctrl+左键,或者单击右键';
    case 'open'
        str = '双击鼠标任意键';
    otherwise
        str = 'Impossible!!!!';
end
% helpdlg(str, '提示')
disp(str)
【WindowButtonDownFcn是MATLAB绘图窗口的一个属性,用以指定响应鼠标按键的回调函数】,是指任何鼠标按键都会触发此回调函数,所以才需要读另一个属性SelectionType来判断到底是什么样的按键行为。

本来双击就是按了两下键,第一下触发单击消息,第二下触发双击消息。
 
消息在那里客观存在,怎样响应是你自己决定的,例如,你可以借助于前一条的单击消息判断双击是按了哪个键(否则双击消息不区分左右)。如果希望不响应单击事件,那就直接把normal的那个case分支去掉就行了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值