在matlab界面编程的时候,想要响应鼠标双击的消息,要怎么弄呢?
是要自己写还是可以在matlab里面添加? 展开
WindowButtonDownFcn是MATLAB绘图窗口的一个属性,用以指定响应鼠标按键的回调函数。
如果你是用GUIDE做的界面,就在Figure的Inspector里面找到该属性,按右侧的编辑按钮就会打开M文件编辑器,然后直接写回调函数的内容即可。
如果用M语言写GUI,可直接设置figure的WindowButtonDownFcn属性为回调函数的句柄。
回调函数的命名任意,里面需要获取另外一个属性SelectionType以判断鼠标按键的类型,可能的值包括(Windows系统上):
normal:代表单击鼠标左键;
extend:代表Shift+左键,或者同时按左右键;
alt:代表Ctrl+左键,或者单击右键;
open:代表双击鼠标任意键。
下面给你一个用M文件直接写GUI的简单例子,供参考:
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这个能相应双击的消息吗?
我要的是双击消息
还有,那个函数不分左键和右键吗?
都给你例子了,不会自己试试吗?稍微读一下代码,然后运行并在窗口按键,看看是什么反应不就明白了?
我上面说的还算清楚吧,【WindowButtonDownFcn是MATLAB绘图窗口的一个属性,用以指定响应鼠标按键的回调函数】,是指任何鼠标按键都会触发此回调函数,所以才需要读另一个属性SelectionType来判断到底是什么样的按键行为。
2023-06-12 广告