【221】◀▶ IDL GUI 函数说明

参考: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 来获取。

   
原文地址:https://www.cnblogs.com/alex-bn-lee/p/5807347.html