参考:GUI - Dialogs Routines
参考:GUI - Widgets Routines
参考:GUI - Compound Widgets Routines


01   DIALOG_MESSAGE 消息框。
02   DIALOG_PICKFILE 文件/文件夹选择。

序号 名称  

功能说明

  语法 & 举例
01 DIALOG_MESSAGE  

====<<<< Description >>>>====

消息框。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = DIALOG_MESSAGE( Message_Text [, /CANCEL] [, /CENTER] [, /DEFAULT_CANCEL | , /DEFAULT_NO] [, DIALOG_PARENT=widget_id] [, DISPLAY_NAME=string] [, /ERROR | , /INFORMATION | , /QUESTION] [, RESOURCE_NAME=string] [, TITLE=string] )

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为点击的按钮,可能是 “Yes”, “No”, “OK”, and “Cancel”。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈ Message_Text:显示的消息文本。
◈ CANCEL:设为 1 时为消息框增加一个“Cancel”的按钮。
◈ CENTER:消息框在屏幕中间显示。
◈ DEFAULT_CANCEL:设为 1 时默认选择“Cancel”。
◈ DEFAULT_NO:设为 1 时默认选择“NO”。
◈ ERROR:设为 1 时,消息框类型为错误提示对话框。
◈ INFORMATION:设为 1 时,消息框类型为信息提示对话框。
◈ QUESTION:设为 1 时,消息框类型为疑问对话框。
◈ TITLE=string:消息框的标题设置。

 
IDL> DIALOG_MESSAGE("消息内容", /CANCEL,
/CENTER, /INFORMATION, TITLE="我是标题")
Cancel

 02 DIALOG_PICKFILE

====<<<< Description >>>>====

文件/文件夹选择。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = DIALOG_PICKFILE( [, DEFAULT_EXTENSION=string] [, /DIRECTORY] [, DIALOG_PARENT=widget_id] [, DISPLAY_NAME=string] [, FILE=string] [, FILTER=string/string array] [, /FIX_FILTER] [, GET_PATH=variable] [, GROUP=widget_id] [, /MULTIPLE_FILES] [, /MUST_EXIST] [, /OVERWRITE_PROMPT] [, PATH=string] [, /READ | , /WRITE] [, RESOURCE_NAME=string] [, TITLE=string] )
----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

当未指定 DIRECTORY 关键字的时候,返回值为所选文件的完整路径或者多个路径的数组,没指定文件则返回空字符串;当指定 DIRECTORY 关键字的时候,返回值为所选文件夹的路径数组。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈ DEFAULT_EXTENSION:自动增加扩展名。
◈ DIRECTORY:选择文件夹。
◈ FILE=string:可以使用通配符进行筛选(FILE='sa*')。
◈ FILTER=string/string array:扩展名设置(FILTER=['*.jpg', '*.tif', '*.png'])。
◈ GET_PATH=variable:选项的路径,与 PATH 设置为相同的变。量,可以实现记住上一次打开的路径值。
◈ MULTIPLE_FILES:可以选择多个文件。
◈ PATH:设置初始进去的路径,不指定就进当前的工作空间。
◈ READ:标题为 “Select File to Read”。
◈ WRITE:标题为 “Select File to Write”。
◈ TITLE=string:标题设置。

 
IDL> DIALOG_PICKFILE(FILTER=['*.jpg', '*.tif', '*.png'],
GET_PATH=dir, TITLE="我是标题")
D:\桌面\QQ截图20160825160811.jpg
IDL> dir
D:\桌面\

IDL> DIALOG_PICKFILE(/DIRECTORY, TITLE="我是标题")
C:\Boot\

03 WIDGET_BASE  

====<<<< Description >>>>====

可以称为容器组件,任何界面必须以 Base 组件为基础界面。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_BASE( [Parent] [, /ALIGN_BOTTOM | , /ALIGN_CENTER | , /ALIGN_LEFT | , /ALIGN_RIGHT | , /ALIGN_TOP] [, /BASE_ALIGN_BOTTOM | , /BASE_ALIGN_CENTER | , /BASE_ALIGN_LEFT | , /BASE_ALIGN_RIGHT | , /BASE_ALIGN_TOP] [, BITMAP=value] [, COLUMN=value | , ROW=value] [, /CONTEXT_EVENTS] [, /CONTEXT_MENU] [, EVENT_FUNC=string] [, EVENT_PRO=string] [, /EXCLUSIVE | , /NONEXCLUSIVE] [, /FLOATING] [, FRAME=value] [, FUNC_GET_VALUE=string] [, /GRID_LAYOUT] [, GROUP_LEADER=widget_id] [, /KBRD_FOCUS_EVENTS] [, KILL_NOTIFY=string] [, /MAP] [, /MASK] [, MBAR=variable | , /MODAL] [, /NO_COPY] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, SCR_XSIZE=value] [, SCR_YSIZE=value] [, /SCROLL] [, /SENSITIVE] [, SPACE=value] [, TAB_MODE=value] [, TITLE=string] [, TLB_FRAME_ATTR=value] [, /TLB_ICONIFY_EVENTS] [, /TLB_KILL_REQUEST_EVENTS] [, /TLB_MOVE_EVENTS] [, /TLB_RESIZE_NODRAW] [, /TLB_SIZE_EVENTS] [, /TOOLBAR] [, /TRACKING_EVENTS] [, UNAME=string] [, UNITS=value] [, UVALUE=value] [, XOFFSET=value] [, XPAD=value] [, XSIZE=value] [, X_SCROLL_SIZE=value] [, YOFFSET=value] [, YPAD=value] [, YSIZE=value] [, Y_SCROLL_SIZE=value] )

Motif Keywords:
[, DISPLAY_NAME=string] [, RESOURCE_NAME=string] [, RNAME_MBAR=string]

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回新建容器组件的 ID 值。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  TITLE:用于设置最底层容器组件的标题,也就是窗体标题。
◈  BITMAP:字符串指定标题旁图标(bmp、ico)。
◈  UVALUE:用户自定义值(User Value),可通过 WIDGET_CONTROL 过程的 GET_UVALUE 和 SET_UVALUE 读取和修改。可存储任意类型数据。
◈  UNAME:组件用户定义名,字符串。
◈  XSIZE:X 方向大小。
◈  YSIZE:Y 方向大小。
◈  XOFFSET:水平方向上组件的偏移量,不建议用在组件布局上。
◈  YOFFSET:垂直方向上组件的偏移量。
◈  FLOATING:创建浮动窗口,类似导航图窗口,可任意移动。
◈  MODAL:创建模式框窗口,该窗口在被关闭前无法对其父窗口进行操作。
◈  GROUP_LEADER:与 MODAL 组合使用,GROUP_LEADER = base1,就是与此组件联动,无法动。
◈  MBAR:创建菜单栏,调用方式为 mbar = menuID,其中 menuID 是菜单栏组件 ID。
◈  TLB_FRAME_ATTR:创建不同类型窗口,数值可以累加。
◈  TLB_KILL_REQUEST_EVENTS:控制相应关闭事件,如果设置该参数为 1,则在界面事件相应程序中可以根据 TAG_NAMES ( event, /STRUCTURE_NAME ) 的返回值是否为“WIDGET_KILL_REQUEST”来判断是否对组件进行了关闭操作。(WIDGET_KILL_REQUEST 必须大写,否则报错)
◈  ROW:子组件按照行的形式排列。
◈  COLUMN:子组件按照列的形式排列。
◈  MBAR:指定此关键字用来建立菜单栏,WIDGET_BUTTON 引用此变量可以建立菜单栏。
◈  EXCLUSIVE:用来建立单选按钮。
◈  NONEXLUSIVE:用来建立复选框。

◈  EVENT_PRO:事件响应时会调用指定的事件程序。
◈  EVENT_PRO:事件响应时会调用指定的事件程序。

   
04 WIDGET_CONTROL  

====<<<< Description >>>>====

过程,可实现组件控制,如组件显示、组件属性设置、属性读取和组件销毁等操作。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

WIDGET_CONTROL [, Widget_ID]

Keywords that apply to all widgets:
[, BAD_ID=variable] [, /CLEAR_EVENTS] [, DEFAULT_FONT=string{do not specify Widget_ID}] [, /DELAY_DESTROY{do not specify Widget_ID}] [, /DESTROY] [, EVENT_FUNC=string] [, EVENT_PRO=string] [, FUNC_GET_VALUE=string] [, GET_UVALUE=variable] [, GROUP_LEADER=widget_id] [, /HOURGLASS{do not specify Widget_ID}] [, KILL_NOTIFY=string] [, /MAP] [, /NO_COPY] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, /REALIZE] [, /REDRAW] [, /RESET{do not specify Widget_ID}] [, SCR_XSIZE=width] [, SCR_YSIZE=height] [, SEND_EVENT=structure] [, /SENSITIVE] [, SET_UNAME=string] [, SET_UVALUE=value] [, /SHOW] [, TIMER=value] [, TLB_GET_OFFSET=variable] [, TLB_GET_SIZE=variable] [, /TLB_KILL_REQUEST_EVENTS] [, TLB_SET_TITLE=string] [, TLB_SET_XOFFSET=value] [, TLB_SET_YOFFSET=value] [, /TRACKING_EVENTS] [, UNITS={0 | 1 | 2}] [, /UPDATE] [, XOFFSET=value] [, XSIZE=value] [, YOFFSET=value] [, YSIZE=value]

Keywords that apply to WIDGET_BASE: [, BASE_SET_TITLE=string] [, /CONTEXT_EVENTS] [, /ICONIFY] [, /KBRD_FOCUS_EVENTS] [, TAB_MODE=value] [, /TLB_ICONIFY_EVENTS] [, /TLB_KILL_REQUEST_EVENTS] [, /TLB_MOVE_EVENTS] [, /TLB_SIZE_EVENTS]

Keywords that apply to WIDGET_BUTTON:
[, /BITMAP] [, /DYNAMIC_RESIZE] [, GET_VALUE=value] [, IMAGE=byte array] [, /INPUT_FOCUS] [, /PUSHBUTTON_EVENTS] [, /SET_BUTTON] [, /SET_MASK] [, SET_VALUE=value] [, TAB_MODE=value] [, TOOLTIP=string] [, X_BITMAP_EXTRA=bits]

Keywords that apply to WIDGET_COMBOBOX: [, COMBOBOX_ADDITEM=string] [, COMBOBOX_DELETEITEM=integer] [, COMBOBOX_INDEX=integer] [, /DYNAMIC_RESIZE] [, GET_VALUE=value] [, IGNORE_ACCELERATORS={string array | {0 | 1}}] [, SET_COMBOBOX_SELECT=integer] [/SET_LIST_EVENTS][, SET_VALUE=value] [, TAB_MODE=value]

Keywords that apply to WIDGET_DRAW and WIDGET_WINDOW:
[, /DRAW_BUTTON_EVENTS] [, /DRAW_EXPOSE_EVENTS] [, DRAW_KEYBOARD_EVENTS={0 | 1 | 2}] [, /DRAW_MOTION_EVENTS] [, /DRAW_VIEWPORT_EVENTS] [, /DRAW_WHEEL_EVENTS] [, DRAW_XSIZE=integer] [, DRAW_YSIZE=integer] [, GET_DRAW_VIEW=variable] [, GET_UVALUE=variable] [, GET_VALUE=variable] [, IGNORE_ACCELERATORS={string array | {0 | 1}}] [, /INPUT_FOCUS] [, SET_DRAG_NOTIFY=string] [, SET_DRAW_VIEW=[x, y]] [, /SET_DROP_EVENTS] [, TOOLTIP=string]

Keywords that apply to WIDGET_DROPLIST: [, /DYNAMIC_RESIZE] [, GET_VALUE=variable] [, SET_DROPLIST_SELECT=integer] [, SET_VALUE=value] [, TAB_MODE=value]

Keywords that apply to WIDGET_LABEL: [, /DYNAMIC_RESIZE] [, GET_VALUE=value] [, SET_VALUE=value]

Keywords that apply to WIDGET_LIST: [, /CONTEXT_EVENTS] [, SET_LIST_SELECT=value] [, SET_LIST_TOP=integer] [, SET_VALUE=value] [, TAB_MODE=value]

Keywords that apply to WIDGET_PROPERTYSHEET: [, /CONTEXT_EVENTS] [, /EDITABLE] [, GET_VALUE=variable] [, /HIDE_ADVANCED_ONLY] [, IGNORE_ACCELERATORS={string array | {0 | 1}}] [, /MULTIPLE_PROPERTIES] [, PROPERTYSHEET_SETSELECTED=empty string, string, or array of strings] [, REFRESH_PROPERTY=string, array of strings, or integer] [, SET_VALUE=value]

Keywords that apply to WIDGET_SLIDER: [, GET_VALUE=value] [, SET_SLIDER_MAX=value] [, SET_SLIDER_MIN=value] [, SET_VALUE=value][, TAB_MODE=value]

Keywords that apply to WIDGET_TAB: [, SET_TAB_CURRENT=index] [, SET_TAB_MULTILINE=value] [, TAB_MODE=value]

Keywords that apply to WIDGET_TABLE:
[, ALIGNMENT={0 | 1 | 2}] [, /ALL_TABLE_EVENTS] [, AM_PM=[stringstring]] [, BACKGROUND_COLOR=array] [, COLUMN_LABELS=string array] [, COLUMN_WIDTHS=array] [, /CONTEXT_EVENTS] [, DAYS_OF_WEEK=string_array{7 names}] [, /DELETE_COLUMNS{not for row_major mode}] [, /DELETE_ROWS{not for column_major mode}] [, /EDITABLE] [, EDIT_CELL=[integer, integer]] [, FONT=string array] [, FOREGROUND_COLOR=array] [, FORMAT=value] [, GET_VALUE=variable] [, IGNORE_ACCELERATORS={string array | {0 | 1}}] [, INSERT_COLUMNS=value] [, INSERT_ROWS=value] [, /KBRD_FOCUS_EVENTS] [, MONTHS=string_array{12 names}] [, ROW_LABELS=string array] [, ROW_HEIGHTS=array] [, SET_TABLE_SELECT=[left, top, right, bottom]] [, SET_TABLE_VIEW=[integer, integer]] [, SET_TEXT_SELECT=[integer, integer]] [, SET_VALUE=value] [, TAB_MODE=value] [, TABLE_BLANK=cells] [, /TABLE_DISJOINT_SELECTION] [, TABLE_XSIZE=columns] [, TABLE_YSIZE=rows] [, /USE_TABLE_SELECT | , USE_TABLE_SELECT=[left, top, right, bottom]] [, /USE_TEXT_SELECT]

Keywords that apply to WIDGET_TEXT: [, /ALL_TEXT_EVENTS] [, /APPEND] [, /CONTEXT_EVENTS] [, /EDITABLE] [, GET_VALUE=variable] [, IGNORE_ACCELERATORS={string array | {0 | 1}}] [, /INPUT_FOCUS] [, /KBRD_FOCUS_EVENTS] [, /NO_NEWLINE] [, SET_TEXT_SELECT=[integer, integer]] [, SET_TEXT_TOP_LINE=line_number] [, SET_VALUE=value] [, TAB_MODE=value] [, /USE_TEXT_SELECT]

Keywords that apply to WIDGET_TREE: [, /CONTEXT_EVENTS] [, GET_VALUE=variable] [, SET_DRAG_NOTIFY=string] [, /SET_DRAGGABLE] [, /SET_DROP_EVENTS] [, /SET_MASK] [, SET_TREE_BITMAP=array] [, SET_TREE_CHECKED=value] [, /SET_TREE_EXPANDED] [, SET_TREE_INDEX=value] [, SET_TREE_SELECT={0 | 1 | widget ID | array of widget IDs}] [, /SET_TREE_VISIBLE] [, SET_VALUE=value] [, TAB_MODE=value] [, TOOLTIP=string]

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  REALIZE:【全部】界面例示。
◈  SET_UVALUE:设置组件的 uvalue。
◈  GET_UVALUE:获得组件的 uvalue。
◈  HOURGLASS:等待时鼠标显示为沙漏。
◈  SCR_XSIZE:组件的屏幕宽度。
◈  SCR_YSIZE:组件的屏幕高度。
◈  NO_COPY:【全部】设置后不复制数据到内存中,减少消耗。

   
05 WIDGET_INFO  

====<<<< Description >>>>====

可获得已经存在组件的信息。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_INFO( [Widget_ID] )

Keywords that apply to all widgets:
[, /
ACTIVE]
[, /ALL_CHILDREN]
[, /CHILD] [, /DISPLAY] [, /EVENT_FUNC]
[, /EVENT_PRO]
[, FIND_BY_UNAME=string]
[, /FONTNAME]
[, /FUNC_GET_VALUE]
[, /GEOMETRY]
[, /KBRD_FOCUS_EVENTS]
[, /MANAGED]
[, /MAP]
[, /N_CHILDREN]
[, /NAME]
[, /PARENT]
[, /PRO_SET_VALUE]
[, /REALIZED]
[, /SENSITIVE]
[, /SIBLING]
[, STRING_SIZE={string | [stringfont]}]
[, /SYSTEM_COLORS]
[, /TAB_MODE]
[, /TRACKING_EVENTS]
[, /TYPE]
[, UNITS={0 | 1 | 2}]
[, /UNAME]
[, /UPDATE]
[, /VALID_ID]
[, /VERSION]
[, /VISIBLE]

Keywords that apply to WIDGET_BASE:
[, /CONTEXT_EVENTS]
[, /MODAL]
[, /TLB_ICONIFY_EVENTS]
[, /TLB_KILL_REQUEST_EVENTS]
[, /TLB_MOVE_EVENTS]
[, /TLB_SIZE_EVENTS]

Keywords that apply to WIDGET_BUTTON: [, /BUTTON_SET] [, /DYNAMIC_RESIZE] [, /MASK] [, /PUSHBUTTON_EVENTS] [, /TOOLTIP]

Keywords that apply to WIDGET_COMBOBOX: [, /COMBOBOX_GETTEXT] [, /COMBOBOX_NUMBER] [, /DYNAMIC_RESIZE] [, /LIST_EVENTS]

Keywords that apply to WIDGET_DRAW and WIDGET_WINDOW:
[, /DRAG_NOTIFY] [, /DRAW_BUTTON_EVENTS] [, /DRAW_EXPOSE_EVENTS] [, DRAW_KEYBOARD_EVENTS={0 | 1 | 2}] [, /DRAW_MOTION_EVENTS] [, /DRAW_VIEWPORT_EVENTS] [, /DRAW_WHEEL_EVENTS] [, /DROP_EVENTS] [, /TOOLTIP]

Keywords that apply to WIDGET_DROPLIST: [, /DROPLIST_NUMBER] [, /DROPLIST_SELECT] [, /DYNAMIC_RESIZE]

Keywords that apply to WIDGET_LABEL: [, /DYNAMIC_RESIZE]

Keywords that apply to WIDGET_LIST: [, /CONTEXT_EVENTS] [, /LIST_MULTIPLE] [, /LIST_NUMBER] [, /LIST_NUM_VISIBLE] [, /LIST_SELECT] [, /LIST_TOP]

Keywords that apply to WIDGET_PROPERTYSHEET: [, /CONTEXT_EVENTS] [, COMPONENT=objref] [, /MULTIPLE_PROPERTIES] [, PROPERTY_VALID=string] [, PROPERTY_VALUE=string] [, /PROPERTYSHEET_NSELECTED] [, /PROPERTYSHEET_SELECTED]

Keywords that apply to WIDGET_SLIDER: [, /SLIDER_MIN_MAX]

Keywords that apply to WIDGET_TAB:
[, /TAB_CURRENT] [, /TAB_MULTILINE] [, /TAB_NUMBER]

Keywords that apply to WIDGET_TABLE: [, /COLUMN_WIDTHS] [, /CONTEXT_EVENTS] [, /ROW_HEIGHTS] [, /TABLE_ALL_EVENTS] [, /TABLE_BACKGROUND_COLOR] [, /TABLE_DISJOINT_SELECTION] [, /TABLE_EDITABLE] [, /TABLE_EDIT_CELL] [, /TABLE_FONT] [. /TABLE_FOREGROUND_COLOR] [, /TABLE_SELECT] [, /TABLE_VIEW] [, /TEXT_SELECT] [, /USE_TABLE_SELECT]

Keywords that apply to WIDGET_TEXT: [, /CONTEXT_EVENTS] [, /TEXT_ALL_EVENTS] [, /TEXT_EDITABLE] [, /TEXT_NUMBER] [, TEXT_OFFSET_TO_XY=integer] [, /TEXT_SELECT] [, /TEXT_TOP_LINE] [, TEXT_XY_TO_OFFSET=[column, line]]

Keywords that apply to WIDGET_TREE: [, /CONTEXT_EVENTS] [, /DRAG_NOTIFY] [, /DRAGGABLE] [, /DROP_EVENTS] [, /MASK] [, /TOOLTIP] [, /TREE_BITMAP] [, /TREE_CHECKBOX] [, /TREE_CHECKED] [, /TREE_DRAG_SELECT] [, /TREE_EXPANDED] [, /TREE_FOLDER] [, /TREE_INDEX] [, /TREE_ROOT] [, /TREE_SELECT]

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为给定组件 ID 的指定信息。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  GEOMETRY:设置组件的位置偏移和大小信息。
◈  PARENT:获得组件的父组件。
◈  CHILD:获得组件的孩子组件。
◈  UNAME:获得组件的 uname。
◈  VALID_ID:组件是否有效。
◈  FIND_BY_UNAME:通过 uname 查找组件。

   
 06 WIDGET_BUTTON  

====<<<< Description >>>>====

按钮。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_BUTTON( Parent [, ACCELERATOR=string] [, /ALIGN_CENTER | , /ALIGN_LEFT | , /ALIGN_RIGHT] [, /BITMAP] [, /CHECKED_MENU] [, /DYNAMIC_RESIZE] [, EVENT_FUNC=string] [, EVENT_PRO=string] [, /FLAT] [, FONT=string] [, FRAME=width] [, FUNC_GET_VALUE=string] [, GROUP_LEADER=widget_id] [, /HELP] [, IMAGE=byte array] [, KILL_NOTIFY=string] [, /MASK] [, /MENU] [, /NO_COPY] [, /NO_RELEASE] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, /PUSHBUTTON_EVENTS] [, SCR_XSIZE=width] [, SCR_YSIZE=height] [, /SENSITIVE] [, /SEPARATOR] [, TAB_MODE=value] [, TOOLTIP=string] [, /TRACKING_EVENTS] [, UNAME=string] [, UNITS={0 | 1 | 2}] [, UVALUE=value] [, VALUE=value] [, X_BITMAP_EXTRA=bits] [, XOFFSET=value] [, XSIZE=value] [, YOFFSET=value] [, YSIZE=value] )

X Windows Keywords:
[, RESOURCE_NAME=string]

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为新创建按钮的组件 ID。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Parent:新建按钮组件的父组件 ID。
◈  TOOLTIP:鼠标在按钮上悬停时所显示的文字。不要用双引号,要用单引号,否则会出错。
◈  VALUE:不同类型不同的显示方式,有下面几种
  字符串:显示为文字;
  n x m 字节型数组:显示为黑白图片;
  n x m x 3 字节型数组:显示成 24 位真彩色图片;
  Bitmap 控制是否显示成图标型按钮。
◈  BITMAP:指向一个 .bmp 文件,文件存在于 .pro 相同文件夹即可调用。
◈  MENU:创建菜单按钮,用来创建多级菜单(主菜单通过 WIDGET_BASE 的 MBAR 关键字建立)。
◈  SEPARATOR:菜单之间的分割线,加在菜单项上面。
◈  复选或单选:由按钮父组件 WIDGET_BASE 中 EXCLUSIVE 和 NONEXCLUSIVE 关键字控制。
◈  FONT:显示的字体,例如:font='Courier New'。

   
07 WIDGET_LABEL  

====<<<< Description >>>>====

标签组件,用来创建字符串标签。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_LABEL( Parent [, /ALIGN_CENTER | , /ALIGN_LEFT | , /ALIGN_RIGHT] [, /DYNAMIC_RESIZE] [, FONT=string] [, FRAME=width] [, FUNC_GET_VALUE=string] [, GROUP_LEADER=widget_id] [, KILL_NOTIFY=string] [, /NO_COPY] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, RESOURCE_NAME=string] [, SCR_XSIZE=width] [, SCR_YSIZE=height] [, /SENSITIVE] [, /SUNKEN_FRAME] [, /TRACKING_EVENTS] [, UNAME=string] [, UNITS={0 | 1 | 2}] [, UVALUE=value] [, VALUE=value] [, XOFFSET=value] [, XSIZE=value] [, YOFFSET=value] [, YSIZE=value] )

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为新创建标签的组件 ID。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Parent:新建标签组件的父组件 ID。
◈  VALUE:组件上显示的字符串,需换行显示可在字符串中间用 String(13b) 分隔。
◈  FRAME:字符串外围边框宽度,为 0 则不显示。
◈  FONT:显示的字体,例如:font='Courier New'。

◈  MENU:创建菜单按钮,用来创建多级菜单。
◈  SEPARATOR:菜单之间的分割线,加在菜单项上面。
◈  复选或单选:由按钮父组件 WIDGET_BASE 中 EXCLUSIVE 和 NONEXCLUSIVE 关键字控制。

   
08 WIDGET_LIST  

====<<<< Description >>>>====

列表组件,用来创建列选择组件。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_LIST( Parent [, /CONTEXT_EVENTS] [, EVENT_FUNC=string] [, EVENT_PRO=string] [, FONT=string] [, FRAME=width] [, FUNC_GET_VALUE=string] [, GROUP_LEADER=widget_id] [, KILL_NOTIFY=string] [, /MULTIPLE] [, /NO_COPY] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, RESOURCE_NAME=string] [, SCR_XSIZE=width] [, SCR_YSIZE=height] [, /SENSITIVE] [, TAB_MODE=value] [, /TRACKING_EVENTS] [, UNAME=string] [, UNITS={0 | 1 | 2}] [, UVALUE=value] [, VALUE=value] [, XOFFSET=value] [, XSIZE=value] [, YOFFSET=value] [, YSIZE=value] )

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为新创建列表的组件 ID。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Parent:新建列表组件的父组件 ID。
◈  VALUE:List 组件显示的字符串或字符串数组。
◈  MULTIPLE:组件列表可以多选。

◈  FONT:显示的字体,例如:font='Courier New'。
◈  SEPARATOR:菜单之间的分割线,加在菜单项上面。
◈  复选或单选:由按钮父组件 WIDGET_BASE 中 EXCLUSIVE 和 NONEXCLUSIVE 关键字控制。

   
09 WIDGET_DROPLIST  

====<<<< Description >>>>====

下拉列表组件,与 WIDGET_LIST 组件类似,可以创建下拉列表。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_DROPLIST( Parent [, /DYNAMIC_RESIZE] [, EVENT_FUNC=string] [, EVENT_PRO=string] [, /FLAT] [, FONT=string] [, FRAME=value] [, FUNC_GET_VALUE=string] [, GROUP_LEADER=widget_id] [, KILL_NOTIFY=string] [, /NO_COPY] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, RESOURCE_NAME=string] [, SCR_XSIZE=width] [, SCR_YSIZE=height] [, /SENSITIVE] [, TAB_MODE=value] [, TITLE=string] [, /TRACKING_EVENTS] [, UNAME=string] [, UNITS={0 | 1 | 2}] [, UVALUE=value] [, VALUE=value] [, XOFFSET=value] [, XSIZE=value] [, YOFFSET=value] [, YSIZE=value] )

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为新创建下拉列表的组件 ID。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Parent:新建下拉列表组件的父组件 ID。
◈  VALUE:List 组件显示的字符串或字符串数组。
◈  FONT:显示的字体,例如:font='Courier New'。

◈  SEPARATOR:菜单之间的分割线,加在菜单项上面。
◈  复选或单选:由按钮父组件 WIDGET_BASE 中 EXCLUSIVE 和 NONEXCLUSIVE 关键字控制。

   
10 WIDGET_SLIDER  

====<<<< Description >>>>====

滑动条组件,用来创建滑动条,滑动条可以交互获取或者设置指定范围内的整数值。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_SLIDER( Parent [, /DRAG] [, EVENT_FUNC=string] [, EVENT_PRO=string] [, FONT=string] [, FRAME=width] [, FUNC_GET_VALUE=string] [, GROUP_LEADER=widget_id] [, KILL_NOTIFY=string] [, MAXIMUM=value] [, MINIMUM=value] [, /NO_COPY] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, RESOURCE_NAME=string] [, SCR_XSIZE=width] [, SCR_YSIZE=height] [, SCROLL=units] [, /SENSITIVE] [, /SUPPRESS_VALUE] [, TAB_MODE=value] [, TITLE=string] [, /TRACKING_EVENTS] [, UNAME=string] [, UNITS={0 | 1 | 2}] [, UVALUE=value] [, VALUE=value] [, /VERTICAL] [, XOFFSET=value] [, XSIZE=value] [, YOFFSET=value] [, YSIZE=value] )

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为新创建滑动条的组件 ID。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Parent:新建滑动条组件的父组件 ID。
◈  VALUE:滑动条默认值,整数。
◈  MAXIMUM:滑动条范围的最大值。
◈  MINIMUM:滑动条范围的最小值。
◈  SCROLL:滑动条的滑动步长,默认值为 (Maximum - Minimum) * 0.1。

◈  复选或单选:由按钮父组件 WIDGET_BASE 中 EXCLUSIVE 和 NONEXCLUSIVE 关键字控制。

   
11 WIDGET_TREE  

====<<<< Description >>>>====

树组件,用来创建属性列表组件。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = WIDGET_TREE( Parent [, /ALIGN_BOTTOM | , /ALIGN_CENTER | , /ALIGN_LEFT | , /ALIGN_RIGHT | ,  /ALIGN_TOP] [, BITMAP=array] [, /CHECKBOX] [, CHECKED=value] [, /CONTEXT_EVENTS] [, DRAG_NOTIFY=string] [, /DRAGGABLE] [, /DROP_EVENTS] [, EVENT_FUNC=string] [, EVENT_PRO=string] [, /EXPANDED] [, /FOLDER] [, FUNC_GET_VALUE=string] [, GROUP_LEADER=widget_id] [, INDEX=value] [, KILL_NOTIFY=string] [, /MASK] [, /MULTIPLE] [, /NO_BITMAPS] [, /NO_COPY] [, NOTIFY_REALIZE=string] [, PRO_SET_VALUE=string] [, SCR_XSIZE=width] [, SCR_YSIZE=height] [, /SENSITIVE] [, TAB_MODE=value] [, TOOLTIP=string] [, /TRACKING_EVENTS] [, UNAME=string] [, UNITS={0 | 1 | 2}] [, UVALUE=value] [, VALUE=string] [, XOFFSET=value] [, XSIZE=value] [, YOFFSET=value] [, YSIZE=value] )

----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

返回值为新创建树形列表的组件 ID。

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Parent:新建属性列表组件的父组件 ID。
◈  VALUE:是 tree 的节点显示的名称。
◈  FOLDER:设为 1 时,当前节点是文件夹节点(树枝),可包含叶子节点。
◈  EXPANDED:设为 1 时,可对文件夹节点进行展开、折叠控制。

◈  SCROLL:滑动条的滑动步长,默认值为 (Maximum - Minimum) * 0.1。
◈  复选或单选:由按钮父组件 WIDGET_BASE 中 EXCLUSIVE 和 NONEXCLUSIVE 关键字控制。

   
  XMANAGER  

====<<<< Description >>>>====

组件创建成功后,用 XMANAGER 来处理产生的事件并调用事件响应程序。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

XMANAGER [, Name, ID] [, /CATCH] [, CLEANUP=string] [, EVENT_HANDLER=‘procedure_name’] [, GROUP_LEADER=widget_id] [, /JUST_REG] [, /NO_BLOCK]

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Name:字符串,用主文件名。
◈  ID:组件的标识 ID,例如:tlb。
◈  EVENT_HANDLER:指定时间响应程序名,如果未指定,则默认响应程序名称是 Name + "_EVENT"。
◈  NO_BLOCK:控制程序运行过程中是否进行屏蔽命令行。

◈  SCROLL:滑动条的滑动步长,默认值为 (Maximum - Minimum) * 0.1。
◈  复选或单选:由按钮父组件 WIDGET_BASE 中 EXCLUSIVE 和 NONEXCLUSIVE 关键字控制。

   
  PROGRAM_EVENT  

====<<<< Description >>>>====

事件响应程序是一个 pro 程序,启动事件响应后,一旦有事件处理操作,系统会自动调用该事件程序并传递组件事件结构体。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

PRO PROGRAM_EVENT , var
----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  PROGRAM:指定的程序名称。
◈  var:事件结构体变量,一般习惯西城 event 或 ev。结构体中包含组件的相关信息,通用成员变量有 ID、Top 和 Handler 三个,均为长整型变量。
  ID:事件过程中组件的唯一标识符;
  Top:组件层次结构中顶级的 base 的标识;
  Handler:与事件响应组件的标识。
注意:界面程序事件中,有时需要根据组件名称或事件类型对事件进行响应处理。通过 WIDGET_INFO 来获取。

   

【221】◀▶ IDL GUI 函数说明的更多相关文章

  1. IDL Interpolate()函数

    Interpolate()函数:可以将数组调整到同维任意大小,并支持任意定位差值.调用格式为 Interpolate(数组,X[,Y[,Z]][,关键字]) 例子: IDL> arr=findg ...

  2. 【299】◀▶ IDL - LIST 函数

    list 函数用来创建一个新的 list.list 可以包含不同的数据类型,包括数据.数组.结构体.指针.对象以及其他的 list 或者 哈希表. 序号 类名称   功能说明   语法 & 举 ...

  3. 【219】◀▶ IDL 数学函数说明

    参考:Math - Miscellaneous Routines参考:Math - Statistical Tools Routines 01   ABS 绝对值. 02   SQRT 平方根. 03 ...

  4. 【297】IDL 过程、函数&关键字参数

    目录: 一.Procedure 1.1 基本说明&定义 1.2 关键字参数 二.Function 2.1 基本说明&定义 2.2 关键字参数 参考:IDL中函数中的带有关键字的参数的使 ...

  5. Matlab的GUI参数传递方式总结

    MATLAB GUI传递方式 1.全局变量: 2.作为函数的参数传递: 3.利用控件的userdata数据: 4.为handles结构体添加新字段: 5.setappdata函数为句柄添加数据: 6. ...

  6. MATLAB中文论坛帖子整理(GUI)

    MATLAB中文论坛帖子整理(GUI) 目   录  1.GUI新手之——教你读懂GUI的M文件... 10 2.GUI程序中改变current directory引起的问题... 15 3.GUI中 ...

  7. IDL 实现 EOF(经验正交函数分析)

    关于EOF详细介绍请wiki http://en.wikipedia.org/wiki/Empirical_orthogonal_functions或者Google之. 与PCA一样,EOF也是遥感多 ...

  8. IDL 字符串

    1.创建字符串 字符串和字符串数组通过赋值或函数方式来创建.在IDL字符串用" "或' '括起来表示. IDL> s1="abcdef" IDL> ...

  9. OpenCV图像处理篇之阈值操作函数

    阈值操作类型 这5种阈值操作类型保留opencv tutorials中的英文名称.依次为: Threshold Binary:即二值化,将大于阈值的灰度值设为最大灰度值.小于阈值的值设为0. Thre ...

随机推荐

  1. MYSQL主从不同步延迟原理分析及解决方案

    1. MySQL数据库主从同步延迟原理.要说延时原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生binlog,binlog是顺序写,所以 ...

  2. PHP中的$_SERVER['PATH_INFO']

    PHP中的全局变量$_SERVER['PATH_INFO']是一个很有用的参数,众多的CMS系统在美化自己的URL的时候,都用到了这个参数. 对于下面这个网址: http://www.test.com ...

  3. 赵雅智_Swift(3)_swift凝视

    请将你的代码中的非运行文本凝视成提示或者笔记以方便你将来阅读. Swift 的编译器将会在编译代码时自己主动忽略掉凝视部分. 单行凝视 以双正斜杠作(//)为起始标记: // 这是一个凝视 多行凝视 ...

  4. Canvas学习笔记——缓动

    当你驾车在高速公路上行驶时,速度是很快的,而快到收费站时,则开始减速直到停下.将这个例子转换成物理模型就是当物体向终点运动时,开始速度会很快,而在快要到达终点时,速度会逐渐放缓直至0,整个运动过程就是 ...

  5. 如何学习Java?

    一点感悟 java作为一门编程语言,在各类编程语言中作为弄潮儿始终排在前三的位置,这充分肯定了java语言的魅力,在实际项目应用中,我们已经无法脱离javaa(Ps当然你可以选择不使用),但它的高性能 ...

  6. 零基础学python-4.5 标准类型分类

    1.按存储分:原子类型和容器类型 原子类型:仅仅能包括一个对象 容器类型:能够包括多个对象 分类 python类型 原子类型 数值和字符串 容器类型 列表.元组和字典 2.按能否够变化分:可变和不可变 ...

  7. Activiti实战

    说实话,接触Activiti已经是3年前的事情,那时候组里想做一个流程自动化的application,并且记录用户点击.做单量等.第一次听说Activiti,感觉挺好奇的,遂看了下相关的文档跟同事的代 ...

  8. HBase写请求分析

    HBase作为分布式NoSQL数据库系统,不单支持宽列表.而且对于随机读写来说也具有较高的性能.在高性能的随机读写事务的同一时候.HBase也能保持事务的一致性. 眼下HBase仅仅支持行级别的事务一 ...

  9. bjfu1332 简单动规

    挺简单的动态规划题.我用记忆化搜索打的.直接上代码: /* * Author : ben */ #include <cstdio> #include <cstdlib> #in ...

  10. Spring MVC之简单入门

    一.Spring MVC简介: 1.什么是MVC 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型(Model).视图(View)及控制器(Contr ...