⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 鼠标拖动字对象.txt

📁 把当前图形窗中已存在的任何字对象拖放到所需的位置;向当前图形窗输入字对象
💻 TXT
字号:
Matlab 鼠标拖动字对象 
  来源:网络收集  整理日期:04月17日 13:06  www.dhxy.com 
 
10.7.9 鼠标拖动字对象

【例 10.7.9 -1 】本程序有两个功能:把当前图形窗中已存在的任何字对象拖放到所需的位置;向当前图形窗输入字对象,并拖放到任何所需位置。 

(1)编写以下程序

[textzzy.m] 

function textzzy(arg) 

% textzzy.m 向当前图形窗输入“字对象”,并用鼠标移放到需要的地方 

% arg 任何合法的“字符串”,或“字符串元胞数组”,或数值 

% 调用格式 textzzy(S_C) 输入串、串元胞 S_C ,并可用鼠标拖动 

% 调用格式 textzzy 可移动当前图形窗中已有的任何字对象 

if ~nargin;arg=0; end 

if ischar(arg)|iscell(arg) % 以下指令向图形窗输入串或串元胞 

PT.Units= 'normalized' ; 

PT.Position=[0.01 0.01]; % 字符串进入图形窗的初始位置 

PT.String=arg; 

PT.HorizontalAlignment= 'left' ; % 字符串的水平定位方式 

PT.VerticalAlignment= 'baseline' ; % 字符串的垂直定位方式 

ht=text(PT); % 采用构架设置字对象属性,创建对象。 

textzzy(0) % 递归调用 textzzy.m 

elseif arg==0 % 为鼠标操作准备条件 

hf=get(0, 'CurrentFigure' ); % 获取当前图形窗的句柄 

if isempty(hf) 

error( ' 图形窗不存在。 ' ) 

end 

PF1.BackingStore= 'off' ; % 为加快拖动速度,释放屏幕象素缓冲器。 

PF1.WindowButtonDownFcn= 'textzzy(1)' ; % 等待鼠标按下左键,递归运行 textzzy(1) 

set(hf,PF1) % 采用构架设置图对象属性 

figure(hf) % 把当前图形窗调到前台 

elseif arg==1 & strcmp(get(gco, 'Type' ), 'text' ) % 选定字对象 

PO1.Units= 'data' ; % 在此设置下,字对象框的左下顶点确定位置 

PO1.EraseMode= 'xor' ; % 设置旧对象的擦除模式 

PO1.HorizontalAlignment= 'left' ;PO1.VerticalAlignment= 'baseline' ; 

set(gco,PO1) % 采用构架设置选定对象的属性 

PF2.Pointer= 'fleur' ; % 设置移动光标的形状 

PF2.WindowButtonMotionFcn= 'textzzy(2)' ; % 移动鼠标时,递归运行 textzzy(2) 

PF2.WindowButtonUpFcn= 'textzzy(999)' ; % 松开鼠标,递归运行 textzzy(999) 

set(gcf,PF2) % 采用构架对图形窗属性再设置 

elseif arg==2 % 拖动字对象 

curpoi=get(gca, 'CurrentPoint' ); % 获得鼠标所在新位置的坐标 

set(gco, 'Position' ,curpoi(1,1:3)) % 使所选对象定位在新坐标处 

elseif arg==999 % 松开鼠标便属性重置为原缺省状态 

set(gco, 'EraseMode' , 'normal' ) 

PF3.WindowButtonDownFcn= '' ; % 恢复设置为缺省值,即空串 

PF3.WindowButtonMotionFcn= '' ; 

PF3.WindowButtonUpFcn= '' ; 

PF3.Pointer= 'arrow' ; % 光标恢复成箭头 

PF3.Units= 'pixels' ; 

PF3.BackingStore= 'on' ; % 重新起用象素缓冲器 

set(gcf,PF3) % 把图形窗设置为缺省状态 

else % 假如鼠标选择的不是“字对象”,恢复缺省设置 

PF4.WindowButtonDownFcn= '' ; 

PF4.WindowButtonMotionFcn= '' ; 

PF4.WindowButtonUpFcn= '' ; 

PF4.Pointer= 'arrow' ; 

PF4.Units= 'pixels' ; 

PF4.BackingStore= 'on' ; 

set(gcf,PF4) 

end 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -