figure有一些回调函数,可以增加figure对象的用户交互性。如CreateFcn、DeleteFcn、CloseRequestFcn、ResizeFcn等,顾名思义,他们分别是在figure对象在创建、删除、关闭请求、改变大小时的回调函数,如果有相应功能要求,可以相应添加响应函数。
还有一些更常用的,如ButtonDownFcn、KeyPressFcn、KeyReleaseFcn是响应在figure对象上(没有在UI子对象上)鼠标响应、按键响应,还有响应前面加Window的函数,如
他们是响应在UI子对象上的按键、鼠标响应。
对于鼠标响应:
其设置回调函数如下
h = figure;
set(h,'windowbuttondownfcn',{@btndown_fcn,a,b});
function btndown_fcn(h,evt,a,b)
cp =
get(haxes,'CurrentPoint'); xinit = cp(1,1);
yinit = cp(1,2);
…
end
注意的地方:
btndown_fcn为鼠标单击响应回调函数,后面的a、b为额外传递给函数的参数,而回调函数默认应该有两个参数,h表示触发鼠标点击的figure,evt为一个事件结构