属性简介
名称 Name: 'Standard.EditPlot'
注册时就必须指定 uiM=uimode(f,'Mine')
模式专属:
IsOneShot 是否一次性,指在一次任意形式的BtnUp事件触发之后,该模式销毁。例如有些标记模式,画了一个方形框就会自动结束
WindowButtonMotionFcnInterrupt Motion回调是否被替换,很多都是默认不会,需要修改则得改此属性
UseContextMenu = 'on';% 是否使用mode上下文菜单Mode,或者使用对象自身先前的
ShowContextMenu = true; 右键单击会被上下文菜单占用,不触发BtnDown,
与Fig窗口回调相关:
WindowButtonDownFcn = [];
WindowButtonUpFcn = [];
WindowButtonMotionFcn = [];
WindowKeyPressFcn = [];
WindowKeyReleaseFcn = [];
WindowScrollWheelFcn = [];
KeyReleaseFcn=[];%E:\R2023b\toolbox\matlab\uitools\+matlab\+uitools\+internal\@uimode\setCallbackFcn.m 函数中可以看到这两个是Fig的属性,
KeyPressFcn = [];
ModeStartFcn = [];% 这两个函数用于控制模式启动关闭的操作,结合ModeStateData,处理好启闭
ModeStopFcn = [];
ButtonDownFilter = [];% 此属性设置为一个Fcn(src,evd),接受的参数是obj的点击事件相同的回调参数,在句柄内部运算输出逻辑值,真值说明此时该对象列入过滤列表,触发自身的Bd,
此属性为uimode独有,是在fig回调中间操控了触发流程
UIContextMenu = [];
ModeStateData = [];
这里面,KeyReleaseFcn有无window前缀的区别在于,无Window的仅仅处理(鼠标)位于自身窗口位置下的按键事件,Window的则是全部会收集触发。只有需要排除Fig接受按键回调时才需要用到KeyRF
AI的说法是:
- WindowKeyPressFcn:
- 它会在用户在图形窗口或者图形窗口的任何子对象上按下键盘上的任意键时触发。
- WindowKeyPressFcn 不区分普通键和功能键(如F1, F2等),也不区分字符键和非字符键。
- KeyPressFcn:
- 这个回调函数在用户在图形窗口中按下键盘上的键时触发,但它不包括图形窗口的子对象。
KeyPressFcn 主要用于处理字符键,它不会对功能键(如F1, F2等)或者方向键等非字符键作出响应。