uimenu(Hm Ico olor, Label',yan, Background Color',c, CallBack, witforbuttonpress: if get(gco,"Type")="line d']) uimenu( Hm Icolor,'Label,'Red ackground Color,'r,' ForegroundColor',w Call Back',['witforbuttonpress if get( gco,"Type")=="line 'set(gco,"color","r"),' d]) uimenu(Hm Icolor,'Label,' Green, CallBack,['witforbuttonpress: if get(gco, Type")=="line set( gco, color uimenu( Hm Icolor,'Label,'Blue Background Color','b,Foreground CallBack,,['witforbuttonpress: ,hdColor',w, if get( gco,"Type")=="line set( gco, color uimenu(Hm Icolor, 'Label White BackgroundColor', 'w' CallBack,[ witforbuttonpress uimenu(Hm Icolor, 'Label,,'Black, BackgroundColor',k,' ForegroundColor,w CallBack,['witforbuttonpress
uimenu(Hm_lcolor, ' Label ' , ' yan ' ,... ' BackgroundColor ' , ' c ' ,... ' CallBack ' ,[ ' witforbuttonpress; ' ,... ' if get(gco,''Type'')==''line'', ' ,... ' set(gco ,''color'', ' ''c''), ' ,... ' end ' ]); uimenu(Hm_lcolor, ' Label ' , ' Red ' ,... ' BackgroundColor ' , ' r ' , ' ForegroundColor ' , ' w ' ,... ' CallBack ' ,[ ' witforbuttonpress; ' ,... ' if get(gco,''Type'')==''line'', ' ,... ' set(gco ,''color'', ' ''r''), ' ,... ' end ' ]); uimenu(Hm_lcolor, ' Label ' , ' Green ' ,... ' BackgroundColor ' , ' g ' ,... ' CallBack ' ,[ ' witforbuttonpress; ' ,... ' if get(gco,''Type'')==''line'', ' ,... ' set(gco ,''color'', ' ''g''), ' ,... ' end ' ]); uimenu(Hm_lcolor, ' Label ' , ' Blue ' ,... ' BackgroundColor ' , ' b ' , ' ForegroundColor ' , ' w ' ,... ' CallBack ' ,[ ' witforbuttonpress; ' ,... ' if get(gco,''Type'')==''line'', ' ,... ' set(gco ,''color'', ' ''b''), ' ,... ' end ' ]); uimenu(Hm_lcolor, ' Label ' , ' White ' ,... ' BackgroundColor ' , ' w ' ,... ' CallBack ' ,[ ' witforbuttonpress; ' ,... ' if get(gco,''Type'')==''line'', ' ,... ' set(gco ,''color'', ' ''w''), ' ,... ' end ' ]); uimenu(Hm_lcolor, ' Label ' , ' Black ' ,... ' BackgroundColor ' , ' k ' , ' ForegroundColor ' , ' w ' ,... ' CallBack ' ,[ ' witforbuttonpress; '
if get(gco, "Type")="line" 为使这一函数更完全,可用同样方法增加另外的菜单以改变坐标轴、曲面、补片和图形的属性。例 如,下面加上了一个 Color映象以改变图形颜色的映象 Hm cmap=uimenu(gcf,'Label,' Color Map') CallBack,' brighten(3)') uimenu(Hm cmap,'Label,' Darker','CallBack',' brighten(- 3)); uimenu( Hm cmap, 'Label,' Default,'Call Back',' colormap(default")) uimenu( Hm cmap, 'Label ',' Gray,CallBack,'colormap(gray)): uimenu(Hm cmap,'Label,'Hot,CallBack, colormap(hot)): uimenu( Hm cmap,'Label,Cool,'Call Back', ' colormap(cool)): uimenu( Hm cmap Label,'Bone,'Call Back',colormap(bone)): uimenu(Hm cmap,'Label, Copper',' ',' colormap(copper)) uimenu( Hm cmap, 'Label,'Pink,CallBack color lap(pink)) uimenu(Hm cmap,'Label,Prism,'Call Back',' colormap(prism)) uimenu(Hm cmap, 'Label,'Jet',CallBack,'colormapgjet)') uimenu( Hm cmap, 'Label ','Flag,'Call Back',colormap(flag)): uimenu( Hm cmap,'Label,'HSV,' CallBack,colormap(hsvflag)') 最后,加上含有两个菜单项的Quit菜单。其中, Close figure关闭图形; Remove menus让图形打开但删 除用户的顶层菜单及所有它的子菜单。 drawnow命令立即删除菜单。 Hm quit=-uimenu( GCF,'IABEL','quit) uimenu(Hm quit,'Label,' Close Figure,'CallBack',close: return ') uimenu( Hm quit,'Label,Remove Menu delete(findobj (gcf, Type, uimenu',"parent", gcf)) drawnow D); 精通 MATLA B工具箱中有许多采用这种技术的函数和其它建立有用的基于对象工具的函数。其中许多 函数将在本章后面详细讨论。 21.4控制框 在各计算机平台上,窗口系统都采用控制框和菜单,让用户进行某些操作,或设置选项或属性
' if get(gco,''Type'')==''line'', ' ,... ' set(gco ,''color'', ' ''k''), ' ,... ' end ' ]); 为使这一函数更完全,可用同样方法增加另外的菜单以改变坐标轴、曲面、补片和图形的属性。例 如,下面加上了一个Color映象以改变图形颜色的映象。 Hm_cmap=uimenu(gcf, ' Label ' , ' Color Map ' ); uimenu(Hm_cmap, ' Label ' , ' Lighter ' , ' CallBack ' , ' brighten(.3) ' ); uimenu(Hm_cmap, ' Label ' , ' Darker ' , ' CallBack ' , ' brighten(-.3) ' ); uimenu(Hm_cmap, ' Label ' , ' Default ' , ' CallBack ' , ' colormap(''default'') ' ); uimenu(Hm_cmap, ' Label ' , ' Gray ' , ' CallBack ' , ' colormap(gray) ' ); uimenu(Hm_cmap, ' Label ' , ' Hot ' , ' CallBack ' , ' colormap(hot) ' ); uimenu(Hm_cmap, ' Label ' , ' Cool ' , ' CallBack ' , ' colormap(cool) ' ); uimenu(Hm_cmap, ' Label ' , ' Bone ' , ' CallBack ' , ' colormap(bone) ' ); uimenu(Hm_cmap, ' Label ' , ' Copper ' , ' CallBack ' , ' colormap(copper) ' ); uimenu(Hm_cmap, ' Label ' , ' Pink ' , ' CallBack ' , ' colormap(pink) ' ); uimenu(Hm_cmap, ' Label ' , ' Prism ' , ' CallBack ' , ' colormap(prism) ' ); uimenu(Hm_cmap, ' Label ' , ' Jet ' , ' CallBack ' , ' colormap(jet) ' ); uimenu(Hm_cmap, ' Label ' , ' Flag ' , ' CallBack ' , ' colormap(flag) ' ); uimenu(Hm_cmap, ' Label ' , ' HSV ' , ' CallBack ' , ' colormap(hsvflag) ' ); 最后,加上含有两个菜单项的Quit菜单。其中,Close Figure关闭图形;Remove Menus让图形打开但删 除用户的顶层菜单及所有它的子菜单。drawnow命令立即删除菜单。 Hm_quit=uimenu(GCF, ' lABEL ' , ' quit ' ); uimenu(Hm_quit, ' Label ' , ' Close Figure ' , ' CallBack ' , ' close;return ' ); uimenu(Hm_quit, ' Label ' , ' Remove Menu ' ,... ' Callback ' ,[... ' delete(findobj(gcf,''Type,''uimenu'',''parent'',gcf)), ' ,... ' drawnow ' ]); 精通MATLAB工具箱中有许多采用这种技术的函数和其它建立有用的基于对象工具的函数。其中许多 函数将在本章后面详细讨论。 21.4 控制框 在各计算机平台上,窗口系统都采用控制框和菜单,让用户进行某些操作,或设置选项或属性