禁用ActiveX控件在MATLAB GUI中消耗鼠标移动或按钮单击?

时间:2013-06-28 20:22:17

标签: matlab interface camera activex

我正在制作一个MATLAB GUI来控制一组提供ActiveX接口的摄像机(Thorlabs DCC1545M)。我想要实现的功能之一是能够点击相机显示窗口并获取当前点数据(相对于窗口)。

我可以使用通用图来轻松实现这一点,但是一旦加载了ActiveX控件,ActiveX控件就会消耗ActiveX区域上发生的鼠标事件,并且不会调用图形的事件函数。发生在该区域之外的鼠标事件会按预期响应。

有关如何禁用ActiveX优先于鼠标事件的任何建议?或其他解决方法?

干杯,

2 个答案:

答案 0 :(得分:0)

这是一个可以正常工作的Matlab文件:

exl = actxserver('excel.application');
exlWkbk = exl.Workbooks;
exlFile = exlWkbk.Open(['C:\mypath\ExcelCOM.xls']);
 exlSheet1 = exlFile.Sheets.Item('Sheet1');
 robj = exlSheet1.Columns.End(4);       % Find the end of the column
 numrows = robj.row;                    % And determine what row it is
 dat_range = ['D2:G' num2str(numrows)]; % Read to the last row
 rngObj = exlSheet1.Range(dat_range);
 exlData = rngObj.Value;
 for ii = 1:size(exlData,2)
    matData(:,ii) = reshape([exlData{2:end,ii}],size(exlData(2:end,ii)));
    lBoxList{ii} = [exlData{1,ii}];
 end
 exl.visible = true;
 for j=1:size(exlData,2)
     for k=1:13
         A(k+2,j)=0
         A(k,j)=matData(k,j)
     end
 end
 exlWkbk.Close
 exl.Quit

答案 1 :(得分:0)

因此,我目前的解决方法是对当前相机框架执行getImage,关闭ActiveX组件的可见性,并将其替换为图像。

“windowbuttonmotionfcn”适用于MATLAB中的图像,而我真正失败的是来自相机的连续实时反馈。