• 利用IDL程序自动添加ENVI菜单【转】


        最近老修改ENVI菜单配置文件menu.men的方式对ENVI添加自定义函数的菜单项,那次忽然发现有个补丁竟然能自动添加menu,今天无意中发现,ENVI自身有个ENVI_DEFINE_MENU_BUTTON。        是这么定义的,如扩展功能函数名称为Envi_file_info,event,那么只需添加个功能过程PRO Envi_file_info_define_buttons, buttonInfo,然后菜单的添加工作就可以在这个过程下完成了。        ENVI_DEFINE_MENU_BUTTON的调用格式如下:ENVI_DEFINE_MENU_BUTTON, ButtonInfo [, /DISPLAY], $ EVENT_PRO=string | /MENU | UVALUE=string [, POSITION=long integer or string] [, REF_INDEX=long integer] [, REF_UVALUE=variable], REF_VALUE=string [, SEPARATOR={0 | 1 | -1}] [, /SIBLING], VALUE=string ; 其中 ; Display-是创建在主菜单还是显示菜单 ; VALUE -菜单的显示信息 -必须的 ; UVALUE -必须的 ; EVENT_PRO-程序事件名称 ; Menu- 是否为菜单 ; REF_INDEX-如REF_VALUE不唯一则可用此来设置 ; REF_VALUE -作为parent的已存在菜单名 ; SIBLING -是否创建同级菜单 ; ...

    +++看一个例子

    PRO Envi_file_info_define_buttons, buttonInfo

    ; 创建主菜单-在Basic Tools菜单前后 ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = '自定义菜单after', $     /MENU, REF_VALUE = 'Basic Tools', /SIBLING, POSITION = 'after' ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = '自定义菜单before', $     /MENU, REF_VALUE = 'Basic Tools', /SIBLING, POSITION = 'before'    
    ;创建子菜单 ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = '功能都有了,添加点儿啥呢?', $     uValue = '', $     event_pro ='Envi_file_info', $     REF_VALUE = '自定义菜单before' ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = '确实不好加!', $     uValue = '', $     event_pro ='Envi_file_info', $     REF_VALUE = '自定义菜单before' ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = '加分隔线咋样?', $     uValue = '', $     event_pro ='Envi_file_info',$     REF_VALUE = '自定义菜单before' , $     /SEPARATOR ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = '后来的,加个塞', $     uValue = '', $     event_pro ='Envi_file_info', $     REF_VALUE = '自定义菜单before', POSITION = 'first'       
    ;创建显示菜单 ENVI_DEFINE_MENU_BUTTON, buttonInfo, $     VALUE = '自定义菜单', $     /Display, $     /MENU, REF_VALUE = 'File', $     /SIBLING, POSITION = 'after' ENVI_DEFINE_MENU_BUTTON, buttonInfo, $     VALUE = '更不知道加啥了', $     UValue =' ', $     /Display, $     event_pro ='Envi_file_info', $     REF_VALUE = '自定义菜单'      
    END ;+ ;:Description: ;    ENVI query image ; Author: DYQ 2009-5-15; ; PRO Envi_file_info,event ; COMPILE_OPT STRICTARR
    ;选择文件 ENVI_OPEN_FILE, fname, r_fid=fid
    ;如无效则返回 IF fid[0] EQ -1 THEN BEGIN     msg = DIALOG_MESSAGE('未打开文件或数据错误!',/Error)     RETURN ENDIF
    ;数据信息查询 ENVI_FILE_QUERY, fid, ns=ns, nl=nl, nb=nb, fname=fname ;提示 msg = DIALOG_MESSAGE('输入文件名:'+ fName + STRING(13B)+ $     ';波段数:'+STRING(nb)+ STRING(13B)+ $ ';大小:'+STRING(ns)+'*'+STRING(nl),$ /Information)
    END

    运行效果图如下:

    转载注明出处:http://www.cnblogs.com/RSmountain/
  • 相关阅读:
    Linux--sed命令
    Linux--cut命令
    Android--aapt命令
    Shell--基础知识
    Linux--vim编辑器和文件恢复
    Linux--基本命令
    Linux--添加用户
    Linux--网络配置
    SpringCloud--Ribbon负载均衡
    第一阶段冲刺4
  • 原文地址:https://www.cnblogs.com/RSmountain/p/2893227.html
Copyright © 2020-2023  润新知