Сохраните структуру поведения указателя в графическом объекте
iptSetPointerBehavior(obj, pointerBehavior)
iptSetPointerBehavior(obj, [])
iptSetPointerBehavior(obj, enterFcn)
iptSetPointerBehavior(obj, pointerBehavior)
хранит заданную структуру поведения указателя в заданном графическом объекте, obj
. Если obj
является массивом объектов, iptSetPointerBehavior
хранит ту же структуру в каждом объекте.
Когда используется с менеджером по указателю фигуры (см. iptPointerManager
), структура поведения указателя управляет тем, что происходит, когда указатель мыши фигуры отодвигается и затем выходит из объекта в фигуре. Для получения дополнительной информации об этой структуре, смотрите Структуру Поведения Указателя.
iptSetPointerBehavior(obj, [])
очищает поведение указателя от графического объекта или объектов.
iptSetPointerBehavior(obj, enterFcn)
создает структуру поведения указателя, устанавливая поле enterFcn
на указатель на функцию, заданный, и устанавливая поля traverseFcn
и exitFcn
на []
. Смотрите Структуру Поведения Указателя для получения дополнительной информации об этих полях. Этот синтаксис обеспечивается как удобство, потому что для наиболее популярных способов использования только enterFcn
необходим.
Структура поведения указателя содержит три поля: enterFcn
, traverseFcn
и exitFcn
. Вы устанавливаете значение этих полей к указателям на функцию и используете функцию iptSetPointerBehavior
, чтобы сопоставить эту структуру с графическим объектом в фигуре. Если фигуре установили менеджера по указателю, менеджер по указателю вызывает эти функции, когда следующие события имеют место. Если вы устанавливаете поле to[]
, никакие меры не приняты.
Указатель на функцию | Когда названо |
---|---|
enterFcn | Названный, когда указатель мыши отодвигается объект. |
traverseFcn | Названный однажды, когда указатель мыши отодвигается объект, и названный снова каждый раз перемещения мыши в объекте. |
exitFcn | Названный, когда указатель мыши оставляет объект. |
Когда менеджер по указателю вызывает функции, вы создаете, это передает два аргумента: объект фигуры и текущее положение указателя.
Измените указатель мыши на fleur каждый раз, когда это по конкретному объекту, и восстановите исходный указатель, когда указатель мыши отъезжает объект. Пример создает объект закрашенной фигуры и сопоставляет структуру поведения указателя с объектом. Поскольку этот сценарий требует только enterFcn
, пример использует the iptSetPointerBehavior(obj, enterFcn)
синтаксис. Пример затем создает менеджера по указателю в фигуре. Обратите внимание на то, что менеджер по указателю заботится о восстановлении исходного указателя фигуры.
patchobj = patch([.25 .75 .75 .25 .25],... [.25 .25 .75 .75 .25], 'r'); xlim([0 1]); ylim([0 1]); enterFcn = @(fig, currentPoint)... set(fig, 'Pointer', 'fleur'); iptSetPointerBehavior(patchobj, enterFcn); iptPointerManager(gcf);
Измените внешний вид указателя мыши, в зависимости от того, где это в объекте. Этот пример настраивает структуру поведения указателя, устанавливая поля enterFcn
и exitFcn
на []
и установку traverseFcn
к функции с именем overMe
, который обрабатывает специфичное для положения поведение. overMe
является функцией, взятой в качестве примера, (в \toolbox\images\imdemos
), который отличается указатель мыши в зависимости от местоположения мыши в объекте. Для получения дополнительной информации отредактируйте overMe
.
patchobj = patch([.25 .75 .75 .25 .25],... [.25 .25 .75 .75 .25], 'r'); xlim([0 1]) ylim([0 1]) pointerBehavior.enterFcn = []; pointerBehavior.exitFcn = []; pointerBehavior.traverseFcn = @overMe; iptSetPointerBehavior(patchobj, pointerBehavior); iptPointerManager(gcf);
Измените заголовок фигуры, когда указатель мыши будет по объекту. В этом сценарии enterFcn
и exitFcn
используются, чтобы достигнуть желаемого эффекта, и traverseFcn
является []
.
patchobj = patch([.25 .75 .75 .25 .25],... [.25 .25 .75 .75 .25], 'r'); xlim([0 1]) ylim([0 1]) pointerBehavior.enterFcn = ... @(fig, currentPoint)... set(fig, 'Name', 'Over patch'); pointerBehavior.exitFcn = ... @(fig, currentPoint) set(fig, 'Name', ''); pointerBehavior.traverseFcn = []; iptSetPointerBehavior(patchobj, pointerBehavior); iptPointerManager(gcf)