手机分类
  导航: 电脑时代在线 · 机械电子 · MATLAB
有问题吗?看 疑难解答 电脑术语

Matlab 鼠标拖动字对象

 
硬件盘点
手机推荐
 
『Matlab 鼠标拖动字对象』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-8-18 
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  


如果您有什么疑问,可以至论坛提出或者解答他人的疑问   返回页面顶部

】【关闭窗口
·上一篇文章:
·下一篇文章:
·导航: 电脑时代在线 · 机械电子 · MATLAB
相关文章
 
搞笑自拍|图片故事|美女图库|体坛宝贝|明星爆料|世界奇观|风光摄影|历史回忆|大千世界
Photshop超炫图片
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部  
网站文本地图
  版权所有:电脑时代在线 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2007 www.PCvz.com online services. all rights reserved. 蜀ICP备05015578
Template designed by LaoJiang. Optimized for 1024x768 to Firefox,Opera and MS-IE. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光