参考: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. poj3211 Washing Clothes

    Description Dearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a ...

  2. Layout规则总结

    一.尺寸要求 1.过孔到焊盘的距离多少合适? 6mil左右 2.铜皮到边框的距离多少合适? 极限8mil,通常12,最好做到20,40 3.Thermal焊盘打地孔个数? 正方形 3*3  4*4   ...

  3. VS快速生成JSON数据类

    1.复制Json数据 2.

  4. 基于HTML,css,jQuery,JavaScript,MySQL搭建博客系统

    一.登陆注册 二.登录验证码相关 三.博客首页显示相关 四.当前用户的家目录显示 五.点赞以及取消 六.父评论以及子评论操作 七.后台管理首页 八.文章的操作(增.删,改) 九.文件上传问题 十.me ...

  5. php返回HTTP状态码

    HTTP协议状态码,调用函数时候只需要将$num赋予一个下表中的已知值就直接会返回状态了.<?PHP /** * HTTP Protocol defined status codes* HTTP ...

  6. EasyHLS实现将IPCamera摄像机的RTSP转HLS直播输出

    EasyHLS EasyHLS是EasyDarwin开源流媒体团队开发的一款HLS打包库,接口非常简单,只需要传入打包的文件名.切片存放的目录.单个切片时长以及切片数等参数,EasyHLS库就能轻松将 ...

  7. 分布式流媒体直播服务器系统 For Linux

    在之前的一篇<基于Darwin实现的分布式流媒体直播服务器系统>中,我们配置了在Win32下面的流媒体直播系统,今天我们分享一下在Linux下面EasyDSS分布式直播服务器系统的配置. ...

  8. 用EasyClient开源项目采集Windows摄像头/麦克风的音视频进行RTSP直播

    EasyClient是EasyDarwin开源流媒体团队开发的一款功能丰富的开源PC客户端项目,目前支持Windows.Android版本,后续将支持ios版本,其中Windows版本的EasyCli ...

  9. wepy原理研究

    像VUE一样写微信小程序-深入研究wepy框架 https://zhuanlan.zhihu.com/p/28700207 wepy原理研究 虽然wepy提升了小程序开发体验,但毕竟最终要运行在小程序 ...

  10. Java NIO 粘包 拆包 (实战) - 史上最全解读

    疯狂创客圈 Java 聊天程序[ 亿级流量]实战系列之13 [博客园 总入口 ] 本文的源码工程:Netty 粘包/半包原理与拆包实战 源码 本实例是<Netty 粘包/半包原理与拆包实战> ...