Отображение Сообщений о событиях от Управления 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 = 
     {}

Щелчок мышью в окне управления теперь ничего не делает, поскольку нет никаких активных событий.

Закройте окно фигуры.

Смотрите также

| | |

Связанные примеры

Больше о

Была ли эта тема полезной?