# Работа с мышкой в MATLAB

## 9. Пример 5

Поместим на фигуру оси и два элемента управления: кнопку и текстовую строку. Зададим размеры всех объектов. Придадим всем объектам свойство отслеживать нажатие кнопки мышки над ними.

hFig = figure('Position',[100 100 700 440],... 'WindowButtonMotionFcn',... 'get(hFig,''CurrentPoint'')',... 'ButtonDownFcn','disp(''Click figure!'')',... 'WindowButtonDownFcn','disp(''Button down!'')',... 'WindowButtonUpFcn','disp(''Button up!'')'); hAxes = axes('Units','Pixels',... 'Position',[20 20 400 400],..., 'ButtonDownFcn','disp(''Click axes!'')'); hText = uicontrol(hFig,'Style','text',... 'Position',[440 400 240 20],... 'String','Text String',... 'ButtonDownFcn','disp(''Text ButtonDownFcn!'')',... 'Callback','disp(''Text Callback!'')'); hButton = uicontrol(hFig,'Style','pushbutton',... 'Position',[440 360 240 20],... 'String','Button',... 'ButtonDownFcn','disp(''Button ButtonDownFcn!'')',... 'Callback','disp(''Button Callback!'')');

При нажатии кнопки мышки вначале вызывается метод фигуры WindowButtonDownFcn, а затем метод ButtonDownFcn осей (если мышка над осями) или фигуры (если мышка не над осями).

Результат: координаты курсора печатаются, если мышка находится над любым местом фигуры, кроме текстовой строки. При нажатии на кнопку мышки над текстовой строкой ничего не происходит. При нажатии мышкой на созданную кнопку hButton вызывается метод Callback, и не вызываются методы ButtonDownFcn, WindowButtonDownFcn и WindowButtonUpFcn.

Используя эти примеры как заготовки, можно исследовать поведение других графических объектов и элементов управления при работе с мышкой.