下面根据鼠标按下的动作、鼠标移动的动作和鼠标释放的动作来对鼠标操作进行更详细的介绍。
鼠标按下的处理
当鼠标的箭头位置位于图形窗口对象内,按下鼠标时,根据鼠标箭头位置的不同和与图形对象邻近程度的不同将会发生不同的动作。如果鼠标箭头位置正好位于一个图形对象上(包括控件对象与菜单对象),那么进行鼠标按下的操作后,该图形对象就被选中,因而就成为当前对象。然后,启动图形对象的Callback属性定义的属性值(M函数或MATLAB表达式)。如果鼠标箭头位置不在图形对象上,但与图形对象的距离在5个像素范围内,那么鼠标被按下后,该图形对象被选中,并且图形窗口对象的WindowButtondownFcn属性被启动,随后图形对象的ButtondownFcn属性被启动。如果鼠标箭头位置位于图形窗口对象上,那么鼠标被按下后,该图形窗口对象成为当前对象,并且图形窗口对象的WindowButtondownFcn属性被启动。同时,MATLAB就会更新图形窗口属性CurrentObject(当前图形对象)为选中的图形对象句柄值,更新图形窗口属性CurrentPoint为当前鼠标箭头位置的坐标值,并更新图形窗口的SelectionType属性(SelectionType属性表示鼠标按键的方式,即是否与组合键Shift,Ctrl结合,以及是否单击或双击鼠标按键)的属性值。
鼠标移动的处理
当鼠标的箭头位置位于图形窗口对象内,移动鼠标时,MATLAB就会更新当前图形窗口的属性CurrentPoint为鼠标箭头所在位置的坐标值,并引起当前图形窗口对象的WindowButtonmotionFcn属性被启动。但是,如果当前图形窗口对象的WindowButtonmotionFcn属性没有被定义,那么MATLAB什么也不做,它既不可能启动当前图形窗口对象的WindowButtonmotionFcn属性,也不会更新当前图形窗口CurrentPoint属性的属性值。
鼠标释放的处理
当鼠标的箭头位置位于图形窗口对象内,释放鼠标时,MATLAB就会更新当前图形窗口属性CurrentPoint的属性值为鼠标箭头所在位置的坐标值,并引起当前图形窗口对象的WindowButtonupFcn属性被启动。但是,如果当前图形窗口对象的WindowButtonupFcn属性没有被定义,那么MATLAB什么也不做,它既不可能启动当前图形窗口对象的WindowButtonupFcn属性,也不会更新当前图形窗口CurrentPoint属性的属性值。