Отображение Сообщений о событиях от Управления 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
не указано.
Регистрация события DblClick
registerevent(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