Объединение обработчиков событий как локальные функции MATLAB

Этот пример показывает, как консолидировать обработчики событий в один файл с помощью локальных функций.

Создайте файл mycallbacks.m, содержащий три стандартных программы обработчика событий, myclick, my2click и mymoused, реализованный как локальные функции.

function a = mycallbacks(str) 
a = str2func(str);

function myclick(varargin)
disp('Single click function')

function my2click(varargin)
disp('Double click function')

function mymoused(varargin)
disp('You have reached the mouse down function')
disp('The X position is: ')
double(varargin{5})
disp('The Y position is: ')
double(varargin{6})

Вызов str2func преобразовывает вектор вводимого символа в указатель на функцию.

Создайте управление.

h = actxcontrol('mwsamp.mwsampctrl.2',[0 0 200 200],gcf,'sampev')

Событие Register Click.

registerevent(h,{'Click',mycallbacks('myclick')})

Похожие темы