概述
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( var argin)
% 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)
|
本来双击就是按了两下键,第一下触发单击消息,第二下触发双击消息。
消息在那里客观存在,怎样响应是你自己决定的,例如,你可以借助于前一条的单击消息判断双击是按了哪个键(否则双击消息不区分左右)。如果希望不响应单击事件,那就直接把normal的那个case分支去掉就行了。
最后
以上就是虚幻期待为你收集整理的Matlab GUI 鼠标事件(二)的全部内容,希望文章能够帮你解决Matlab GUI 鼠标事件(二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复