Указатель объекта, коллбэк которого выполняется
h = gcbo
[h,figure] = gcbo
h = gcbo
возвращает указатель графического объекта, коллбэк которого выполняется.
[h,figure] = gcbo
возвращает указатель текущего объекта коллбэка и указатель фигуры, содержащей этот объект.
MATLAB хранит указатель объекта, коллбэк которого выполняется в корневом свойстве CallbackObject
. Если коллбэк прерывает другой коллбэк, MATLAB заменяет значение CallbackObject
на указатель объекта, коллбэк которого прерывает. Когда тот коллбэк завершается, MATLAB восстанавливает указатель объекта, коллбэк которого был прерван.
Корневое свойство CallbackObject
только для чтения, таким образом, его значение всегда допустимо в любое время во время выполнения обратного вызова. Корневое свойство CurrentFigure
и фигура свойства CurrentAxes
и CurrentObject
(возвращенный gcf
, gca
и gco
, соответственно) являются устанавливаемым пользователем, таким образом, они могут измениться во время выполнения коллбэка, особенно если тот коллбэк прерван другим коллбэком. Поэтому те функции не являются надежными индикаторами, из которых выполняется коллбэк объекта.
Когда вы пишете стандартные программы коллбэка для CreateFcn
и DeleteFcn
любого объекта и фигуры SizeChangedFcn
, необходимо использовать gcbo
, поскольку те коллбэки не обновляют свойство CurrentFigure
корня или свойства CurrentObject
или CurrentAxes
фигуры; они только обновляют свойство CallbackObject
корня.
Когда никакие коллбэки не выполняются, gcbo
возвращает []
(пустая матрица).