?? 鼠標拖動字對象.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 + -