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

## 8. Пример 4

Построим фигуру и оси на ней так, чтобы и фигура, и оси обрабатывали нажатие на кнопку. Для этого в фигуре, помимо метода ButtonDownFcn, задействуем методы WindowButtonDownFcn и WindowButtonUpFcn, а в осях - только метод ButtonDownFcn.

hFig = figure('WindowButtonMotionFcn',... 'get(hFig,''CurrentPoint'')',... 'ButtonDownFcn','disp(''Click figure!'')',... 'WindowButtonDownFcn','disp(''Button down!'')',... 'WindowButtonUpFcn','disp(''Button up!'')'); hAxes = axes('ButtonDownFcn','disp(''Click axes!'')');

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

Элементы управления, помимо метода ButtonDownFcn, имеют метод Callback, также обрабатывающий нажатие на кнопку. Более того, при нажатии на кнопку мышки вызывается именно метод Callback, а не ButtonDownFcn. А в статической текстовой строке вообще ни один из этих методов не вызывается. Текстовая строка блокирует даже метод WindowButtonMotionFcn фигуры (см. следующий пример).