Отображение Сообщений о событиях от Управления mwsampЭтот пример показывает, как обработать события, запущенные управлением MATLAB® ActiveX®, mwsamp2.
Создайте файлы обработчика событий и сохраните их в папку на вашем пути.
Создайте файл myclick.m.
function myclick(varargin) disp('Single click function')
Создайте файл my2click.m.
function my2click(varargin) disp('Double click function')
Создайте файл mymoused.m.
function mymoused(varargin) disp('You have triggered the mouse down function') disp('The X position is: ') double(varargin{5}) disp('The Y position is: ') double(varargin{6})
Создайте окно фигуры.
f = figure('position', [100 200 200 200]);
Укажите события Click и MouseDown.
ctrl = actxcontrol('mwsamp.mwsampctrl.2',[0 0 200 200],f,... {'Click','myclick'; 'MouseDown','mymoused'});
Когда MATLAB создает управление mwsamp2, он также отображает окно рисунка, показывающее метку и круг в центре. Если вы кликаете по различным положениям в этом окне, вы видите отчет в Окне Команды MATLAB X и положении Y мыши.
Каждый раз вы нажимаете кнопку мыши, огни события MouseDown, вызывая функцию mymoused. Эта функция распечатывает значения положения для того события к Командному окну. Например:
The X position is:
ans =
[122]
The Y position is:
ans =
[63]Событие Click отображает сообщение myclick.
Single click function
Двойной клик по мыши ничего не делает, поскольку событие DblClick не указано.
Регистрация события DblClickregisterevent(ctrl,{'DblClick','my2click'})Когда вы дважды кликаете мышь, MATLAB отображает и myclick и сообщения my2click.
Single click function Double click function
Не укажите событие DblClick.
unregisterevent(ctrl,{'DblClick','my2click'})Отобразите в настоящее время зарегистрированные события.
eventlisteners(ctrl)
ans =
'click' 'myclick'
'mousedown' 'mymoused'unregisterallevents(ctrl) eventlisteners(ctrl)
ans =
{}Щелчок мышью в окне управления теперь ничего не делает, поскольку нет никаких активных событий.
Закройте окно рисунка.
actxcontrol | eventlisteners | registerevent | unregisterallevents