在matlab界面编程的时候,想要响应鼠标双击的消息,要怎么弄呢?

网上查的时候,经常看到有人说在WindowButtonDownFcn函数里面弄,但是这个函数是怎么出来的呀?是要自己写还是可以在matlab里面添加?... 网上查的时候,经常看到有人说在WindowButtonDownFcn函数里面弄,但是这个函数是怎么出来的呀?

是要自己写还是可以在matlab里面添加?
展开
 我来答
tianxiawulang
推荐于2017-12-15 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2635万
展开全部

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 广告
单片机汇编程序是用汇编语言编写的程序,用于控制单片机的操作。汇编语言是一种比较接近计算机硬件语言的低级语言,相对于高级语言来说更容易理解和实现。下面是单片机汇编程序的基本步骤:1. 将代码和数据汇编到规定的段中。2. 在存储器中用未初始化的... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式