Tivoli 服务台 6.0 开发工具包脚本语言参考

TSD 脚本消息

返回主页


事件和消息概述

在窗口化 TSD 脚本应用程序中,事件是应用程序的主要功能要素。每个事件代表可能引起某种反应的操作。这些事件来自一系列来源,其中包括:

要处理事件,请创建事件处理器。事件处理器是例行程序,它定义可在应用程序的指定区域中发生的事件类型,以及对这些事件的相应反应。事件处理器访问 $Event,其中后者是一个包含消息常量的变量。该消息常量代表正发生的活动的具体类型。本页提供关于这些消息常量,或如在这里称呼的消息的详细信息。

发送和接收的消息

窗口和对话框接收用户的指令,并将信息转给 TSD 脚本应用程序。这种活动名为消息传送。

在定义事件处理器时应当说明发送和接收的消息。

该页将消息分成下列各组:

对 TSD 脚本函数的某些调用(例如,影响用户界面中的控件的那些调用)可以将消息传送给事件处理器。例如,调用对话框控件的 DlgSetFieldValue 将向该对话框的事件处理器发送 $MsgSelect

从 TSD 脚本语句接收到的消息

正如本页开始所说明的那样,事件(及其消息)可以有一系列的来源。有些 TSD 脚本语句可向应用程序直接发送消息。

下表列出了这些 TSD 脚本语句和应用程序可以接收的消息。

TSD 脚本语句 接收到的代表性消息
DlgSelectField $MsgExitField, $MsgEnterField, $MsgSelect
DlgSetFieldValue $MsgSelect $MsgInitialize
DlgListBoxClear, DlgListBoxDelete $MsgSelect
DlgListBoxInsert, DlgListBoxUpdate $MsgSelect
DlgSQLSelect, DlgSetListBoxIndex $MsgSelect
DlgBox, DlgCreate $MsgCreate, $MsgInitialize
WinCreate $MsgSize, $MsgCreate
WinCreateHyperViewer $MsgCreate
WinCreateScrollWindow $MsgCreate
WinSetIconBar, WinSetMenuBar $MsgSize

用户定义的消息

每个消息常量代表一个由 TSD 脚本应用程序解释的数值。消息常量 $MsgUser 包含的值是 Tivoli Systems 公司保留的消息常量取值范围中的最大值。

要为应用程序创建自定义消息,请使用 $MsgUser+n,其中 n 是赋值给新消息常量的任一数值。作为一个自定义消息常量,$MsgUser+n 既可以用作一个可传送又可以用作一个可接收的消息。在本页的后面部分还可以找到与 $MsgUser+n 有关的其他信息。


可接收的消息

本节包括下列主题:

可接收消息摘要

可接收消息是由事件接收的消息。可接收消息表汇总了 TSD 脚本中的所有可接收消息。

记住这些提示将有助于解释可接收消息表:

  1. $Event 列中列出的项目代表消息常量。
  2. “源”列中列出的项目代表发送该消息的应用程序组件(对话框或窗口)的类型。
  3. “源”列中列出的某些项目按下述原则进行了缩写:
  4. 对话框可接收消息”、 “窗口可接收消息”、和“DDE 可接收消息”等主题包含对消息及其参数的完整说明。
  5. “参数”栏列出事件参数,它们是为 $Event 栏中的消息常量定义的。同义值以 $ 开头。

可接收消息表

$Event 参数
$MsgAccept 对话框 $FieldId, $FieldName
$MsgButton 超文本窗口,对话框 1=按钮文本,
2=按钮标识
$MsgCancel 对话框 $FieldId, $FieldName
$MsgChar 对话框

其他

$FieldId, $FieldName,
3=KeyCode

$KeyCode

$MsgCreate 对话框

其他

$FormFile, $FormName

$MsgDDEAcknowledge 任意 $DDEWindow, $DDEStatus (请参见 DDE 同义词)
$MsgDDEAdvise 任意 $DDEWindow, $DDETopic
$MsgDDEData 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEExecute 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEInitAcknowledge 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEInitiate 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEPoke 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDERequest 任意 $DDEWindow, $DDETopic
$MsgDDETerminate 任意 $DDEWindow
$MsgDDEUnAdvise 任意 $DDEWindow, $DDETopic
$MsgDestroy 任意 任一窗口都是无
$MsgEnterField 对话框 $FieldId, $FieldName
$MsgExitField 对话框 $FieldId, $FieldName
$MsgFocus 任意 $EventParm (1,布尔值)
$MsgHelp 对话框 $FieldId, $FieldName
$MsgImage 图像窗口的父窗口 1=图像标识
$MsgInitialize 对话框 $FieldId, $FieldName,
3=原来的值,4=新的值
$MsgLabel 超文本窗口,对话框 1=按钮文本,2=按钮标签
$MsgMandField 对话框 $FieldId, $FieldName
$MsgMouse 鼠标区 1=标识,2=鼠标活动,3=X,4=Y
$MsgMenu 菜单条


工具条

$MenuSelection (n*100 + m) 或用户定义,
$MenuId, 2=字符串

$MenuSelection (1-99) 或用户定义,
$MenuId, 2=字符串

$MsgPaint 类属
$MsgPaintStatus 包含状态条的
任何对话框或窗口
$MsgPageChange 包含记事簿的任何对话框 1 = 在页更改发生之前的当前页名称
2 = 现在的当前页(即新的页)名称
$MsgPageChangeRequest 包含记事簿的任何对话框 1 = 在页更改发生之前的当前页名称
2 = 现在的当前页(即新的页)名称
$MsgScroll 类属窗口 1=$WinHScroll/$WinVScroll, 2=拇指场所
$MsgSelect 对话框 $FieldId, $FieldName, 3=原来的值,4=新的值
$MsgSize 可滚动类属窗口 1=窗口宽度,2=窗口高度
$MsgTimer 任意 1=计时器标识
$MsgUser+n 任意 属于发送者和接收者的详细信息。

消息参数与同义词

实际上,每个消息常量是 $Event 语句的一个参数。但是,消息常量的定义包括附加信息或事件参数。例如,如果用户在对话框上选择了一个按钮,应用程序将接收到 $MsgButton 消息常量。为该消息常量定义的事件参数是所选按钮的字段名和字段标识。

在接收 $MsgButton 消息时,可以通过使用消息同义词来获得事件参数值。同义词提供了一种获得值的快捷方式。例如,要获得字段名的值,应当使用同义词 $FieldName。例如:

Name of Field: = $FieldName;

如果没有为某个事件参数定义同义词,可以使用 $EventParm 来获得值。要使用 $EventParm,必须指定事件参数的数值和该值的数据类型。例如,对于所有的对话框可接收消息,字段名包含在事件参数二中。要获得字段名事件参数的值,可以使用下列表示法:

$EventParm (2, string);

下面是一个实例。

EVENT ExampleEvent (REF rec : MyRecord) IS
 VARIABLES
 width, height : INTEGER;
 ACTIONS
 WHEN $Event IS $MsgSize THEN
 width := $EventParm(1, INTEGER);
 height := $EventParm (2, INTEGER);
 ELSWHEN...
   END;
   END;

可以在任何可能的地方使用同义词来获得事件参数值。可接收消息表列出了每个可接收消息的事件参数和同义词。

提示:所有对话框消息都为同样的第一和第二事件参数定义了同义词:$FieldId(事件参数一)包含字段标识,$FieldName(事件参数二) 包含字段名。

传输消息时,事件参数的顺序是很重要的。其他信息息,请参见"传送消息:投递与发送"。另见 PostMessageSendMessage 语句。

对话框可接收消息

本节讲述可由发自对话框的事件处理器接收的消息。

提示:本节中的" DDE 可接收消息"主题列出了 DDE 会话所涉及到的对话框中发出的可接收消息。

下表只列出发自对话框并可由事件处理器接收的消息。

可接收消息列表(只列出对话框消息)

$Event 参数
$MsgAccept 对话框 $FieldId, $FieldName
$MsgButton 对话框 1=按钮文本,2=标识按钮
$MsgCancel 对话框 $FieldId, $FieldName
$MsgChar 对话框


其他

$FieldId, $FieldName, 3=KeyCode

$KeyCode

$MsgCreate 对话框 $FormFile, $FormName
$MsgDestroy 任意
MsgDisplayImage 对话框 $ButtonText, $FieldId, $FieldName, $FileName, $ImageFile, $ProgramArguments, $SearchText, $SoundFile,
1=整数, 2=字符串, 3=字符串, 4=字符串
$MsgEnterField 对话框 $FieldId, $FieldName
$MsgExitField 对话框 $FieldId, $FieldName
$MsgHelp 对话框 $FieldId, $FieldName
$MsgImage 图像的父图像 1=图像标识
$MsgInitialize 对话框 $FieldId, $FieldName, 3=oldValue, 4=newValue
$MsgLabel 对话框 1=按钮文本,2=按钮标签
$MsgListboxAccept 对话框 $FieldId, $FieldName, 3=列表框字符串,图表整数
$MsgMandField 对话框 $FieldId, $FieldName
$MsgMouse 鼠标区 1=标识,2=鼠标活动,3=X,4=Y
$MsgMenu 菜单条


工具条

$MenuSelection (n*100 + m)


$MenuSelection (1-99)

$MsgOpenFile 对话框 $ButtonText, $FieldId, $FieldName, $FileName, $ImageFile, $ProgramArguments, $SearchText, $SoundFile,
1=整数, 2=字符串, 3=字符串, 4=字符串
$MsgPlaySound 对话框 $ButtonText, $FieldId, $FieldName, $FileName, $ImageFile, $ProgramArguments, $SearchText, $SoundFile,
1=整数, 2=字符串, 3=字符串, 4=字符串
$MsgRunProgram 对话框 $ButtonText, $FieldId, $FieldName, $FileName, $ImageFile, $ProgramArguments, $SearchText, $SoundFile,
1=整数, 2=字符串, 3=字符串, 4=字符串
$MsgSearch 对话框 $ButtonText, $FieldId, $FieldName, $FileName, $ImageFile, $ProgramArguments, $SearchText, $SoundFile,
1=整数, 2=字符串, 3=字符串, 4=字符串
$MsgSelect 对话框 $FieldId, $FieldName, 3=oldValue, 4=newValue
$MsgTimer 任意 1=计时器标识
$MsgUser+n 任意 属于发送者和接收者的详细信息

对话框同义词

有几个同义词是与对话框可接收的消息一起使用的。其中用得最频繁的同义词是 $FieldId$FieldName

可接收消息表中显示的其他同义词是完全同各自的消息一起得到解释的。关于使用同义词的一般信息,请参见本页中的"消息参数和同义词"主题。

可接收对话框消息说明

这里对可接收消息表中列出的可接收对话框消息进行说明。

$MsgAccept

接收方 包含该控件的任一对话框。
说明 在对话框生成一个接受事件时,将接收到 $MsgAccept
事件参数 有两个事件参数:
  • $FieldId,包含控件标识(整数)
  • $FieldName,包含控件名称(字符串)
响应 可以通过从事件组返回 0 来取消接受操作。
接受事件可以按下列方式发生:
  • 在用户选择与接受事件关联的按钮时。(通常是“确认”按钮。)
  • 如果用户在使用多行编辑控件,则在用户插入新的行时生成 $MsgAccept
  • 如果用户正在使用列表框,则在用户双击项目或选中一个项目并按下 Enter 键时生成接受事件。
  • 用户在已定义了缺省按钮的对话框中按下 Enter 键也可以生成一个消息事件。

在 OS/2 中,如果没有定义缺省按钮,而且光标不在解释 Enter 键的字段中,则在用户按下 Enter 键时生成接受事件。
在 Windows 中,如果用户按下 Enter 键,将影响缺省按钮或生成 $MsgAccept。如果不取消操作,将关闭对话框。

$MsgButton

接收方 任何超文本查看器窗口。
说明 在超文本查看器窗口中选择标识类型(缺省类型)的按钮时,将接收到 $MsgButton
注:超文本查看器中的按钮代表连到另一个实体(例如,其他文件、现存文件中的另一点、图像、声音文件或可执行文件)的链接。
事件参数 有两个事件参数:
  • 事件参数一(字符串),包含按钮文本。
  • 事件参数二(整数),包含按钮标识。

$MsgCancel

接收方 包含控件的对话框。
说明 对话框生成取消事件时,将接收到 $MsgCancel。用户选择“取消”按钮或按下 Escape 键时将生成取消事件。
事件参数 有两个事件参数:
  • $FieldId,包含控件标识(整数)。
  • $FieldName,包含控件名称(字符串)。
响应 从事件组返回零可以中断取消操作。如果没有拒绝该操作,对话框将关闭。

$MsgChar

接收方 任意对话框。
说明 用户在控件中输入该控件不能处理的字符时,将在对话框中接收到 $MsgChar。传送给事件处理器的具体字符随字段而定。通常情况下,将接收到 Control、Alt 和功能键。
事件参数 有三个事件参数:
  • $FieldId,包含控件标识(整数)
  • $FieldName,包含控件名称(字符串)
  • 事件参数三(整数),包含传送给事件处理器的字符
响应 不能将 $KeyCode 参数与对话框一起使用。字符是在第三个事件参数(整数)中传送的。
不会将 F1 键值传送给对话框。取而代之的是,F1 键将生成一个 $MsgHelp 或显示任何现有的帮助文本。

$MsgCreate

接收方 正在创建的进程中的任一对话框。
说明 $MsgCreate 是在创建对话框时,它首先接收到的消息之一。
事件参数 有四个事件参数:
  • 第一个事件参数在 $MsgCreate 消息中是未知的。在绝大多数其他对话框消息中,它通常包含控件标识($FieldId)。
  • 第二个事件参数是 $FieldName,包含所选控件的名称(字符串),通常是 $Unknown,因为在该点处一般没有选定控件。
  • 事件参数三($FormFile)包含格式文件的名称(字符串),其中包括任何带有方括号的窗体名称。
  • 事件参数四($FormName)包含对话框文件中指定窗体的名称(字符串)。
响应 从事件组返回零将中断对话框的创建。DlgCreateDlgBox 语句返回“未创建”错误。
在接收到 $MsgCreate 时,还没有显示对话框。但是下列事情已经发生:
  • 光标已到位。
  • 应用程序已接收到用于对话框的第一个控件的 $MsgEnter 字段。
  • 所有的控件都已被创建,并被初始化为在对话框文件中指定的缺省值和作为初始化数据而传送的初始值。
  • 已创建并更新了实例数据,以满足所有缺省控件值。

其他信息,请参见 $MsgInitialize 消息。

$MsgDestroy

接收方 任意对话框。
说明 向对话框发送 $MsgClose 时生成该消息。用户接受或关闭该对话框时生成 $MsgClose 消息。
对话框接收到 $MsgDestroy 时,其窗口句柄仍然有效,直到破坏过程结束。对话框继续接收消息,直到它从 $MsgDestroy 消息返回时为止。
响应 忽略任何响应。
在对话框的所有控件和子窗口都被损坏后,它将接收该消息。

$MsgEnterField

接收方 任意对话框。
说明 $MsgEnterField 在用户进入控件(通过按 Tab 键或在另一个控件上单击鼠标)时生成。
在将光标移动到新的控件之前接收到它。具有焦点的控件接收 $MsgExitField 消息。
事件参数 有两个事件参数:
  • $FieldId,包含控件标识(整数)
  • $FieldName,包含控件名称(字符串)
响应 在处理该消息的同时从事件组返回零以防止光标移动到新的控件。
如果向新窗口的输入被拒绝,光标将返回用户刚从中退出的字段。在光标改变时,这将导致另一个 $MsgEnterField 消息的生成。
如果向该控件的返回也被拒绝,事件将被取消,任何控件都没有光标。

$MsgExitField

接收方 任意对话框。
说明 $MsgExitField 在退出控件(通过按 Tab 键或在另一个控件上单击鼠标进入)时生成。该消息在光标离开控件之前被接收到。
事件参数 有两个事件参数:
  • $FieldId,包含控件标识(整数)
  • $FieldName,包含控件名称(字符串)
响应 在处理该消息的同时从事件组返回零防止光标移动。

$MsgFocus

接收方 任意对话框。
说明 $MsgFocus 在对话框失去其键盘焦点时生成。
事件参数 $EventParm(1,布尔值)标识对话框是否失去焦点。

$MsgHelp

接收方 任意对话框。
说明 在用户选择“帮助”按钮、但系统不能找到该对话框或控件的帮助时生成 $MsgHelp
事件参数 有两个事件参数:
  • $FieldId,包含控件标识(整数)
  • $FieldName,包含控件名称(字符串)

$MsgInitialize

接收方 任意对话框。
说明 $MsgInitialize$MsgSelect 的特殊形态,只在对话框的创建阶段生成。
$MsgInitialize 允许在创建过程中对对话框控件的值进行特殊处理。创建后,对话框控件的所有事件都被当作 $MsgSelect 消息接收。
事件参数 $MsgSelect 一样,$MsgInitialize 消息具有四个事件参数:
  • $FieldId,包含其值已更改的控件的标识(整数)
  • $FieldName,包含其值已更改的控件的名称(字符串)
  • 事件参数三(字符串),包含实例数据的原来的值
  • 事件参数四(字符串),包含控件的新值

$MsgLabel

接收方 任意对话框。
说明 用户在超文本查看器窗口中选择一个 LABEL 类型的按钮时生成 $MsgLabel
事件参数 $MsgLabel 消息有两个事件参数:
  • 事件参数一(字符串),包含按钮文本。
  • 事件参数二(整数),包含按钮标签。

$MsgListboxAccept

接收方 任意对话框
说明 $MsgListboxAccept 通告列表框中的被双击项目。
事件参数 有三个事件参数:
  • $FieldId,包含列表框控件的标识(整数)
  • $FieldName,包列表框控件的名称(字符串)
  • 事件参数三(字符串),包含列表框和用于表的整数
响应 退出该消息将阻止生成 $MsgAccept

$MsgMandField

接收方 任意对话框
说明 在对话框接收到接受操作,而且必需的字段没有值时接收到 $MsgMandField
事件参数 有两个事件参数:
  • $FieldId,包含光标要移动到其上面的控件的标识(整数)
  • $FieldName,包含其值已更改的选中控件的名称(字符串)
响应 如果返回 FALSE,则系统不能处理该消息。
如果该消息未经处理,或事件组返回缺省值(1),系统将显示一个消息框,通知用户由于缺少必需的值,接受操作已被取消。
用户关闭消息框时,光标将移动到对话框中的第一个必需的空控件上。此移动可以生成 $MsgExitField$MsgSelect$MsgEnterField 消息。接受操作被中断。
如果事件组返回的是 1 以外的任一值,系统不作反应。应用程序必须定位鼠标并拒绝 $MsgAccept

$MsgMenu

接收方 任意对话框。
说明 用户在对话框中的菜单条或工具条上作出选择时,将收到 $MsgMenu
事件参数 伪参数 $MenuSelection 具有所选菜单项的下标。从工具条上进行选择将根据图符位置生成一个从 1 到 99 的值。从菜单条上进行选择将根据这个公式生成一个值:
n * 100 + m

其中 n 是活动选择在主菜单条上的位置,m 是选择在子菜单上的位置。

该消息没有当前控件名或标识。此外,在早期版本中可以模拟菜单选择,但现在已不支持这种操作。

$MsgPaintStatus

每生成一个 $MsgPaintStatus 消息,都会将状态条的当前文本位置重置为 1,1。

$MsgPageChange

接收方 包含记事簿的任何对话框
说明 创建记事簿(设置初始页)和在任何时侯更改当前页时,记事簿事件处理器都将接收到 $MsgPageChange。事件参数指定原来的页和新的页。
事件参数 有两个事件参数:
  • 第一个事件参数指定在发生页更改之前当前页的名称。
  • 第二个事件参数指定现在是当前页(新的页)的页名称。
在第一次显示一个记事簿(在 $MsgCreate 之后)时也能接收到该消息。在这种情况下,将把第一个参数设置为 $Unknown,而第二个参数是初始页的名称。

$MsgPageChangeRequest

接收方 包含记事簿的任何对话框
说明 $MsgPageChangeRequest 在更改页之前被传递。(用零来退出可以防止对页的更改。) 事件参数指定原来的页和新的页。
事件参数 有两个事件参数:
  • 事件参数一指定在发生页更改之前当前页的名称。
  • 事件参数二指定现在是当前页(新的页)的页名称。

$MsgSelect

接收方 任意对话框。
说明 只要更改了控件的值,就会接收到 $MsgSelect
接收到该消息之后,将更新实例数据以反映控件的新值。
在处理 $MsgSelect 的过程中,不能确定控件的实际值。发生这种情况是因为在 Windows 中,在调用 $MsgSelect 之前,要用字段的实际值来更新实例数据。在 OS/2 中,则在调用 $MsgSelect 之后才用字段的实际值来更新实例数据。
事件参数 $MsgSelect 消息具有四个事件消息:
  • $FieldId,包含其值已更改的控件的标识(整数)。
  • $FieldName,包含其值已更改的控件的名称(字符串)。
  • 事件参数三(oldValue),包含实例数据的原来的值(字符串)。 对按钮来说,这不是正确的。请参见此消息的说明。
  • 事件参数四(newValue),包含字段的新的值(字符串)。对按钮来说,这不是正确的。请参见此消息的说明。
响应 返回值 1 来允许保留新的值。得到的消息是 $MsgExitField$MsgEnterField
注释 可以用几种方式来生成 $MsgSelect 消息。
  • 不论何时,只要用户或设置操作更改了选项按钮、复选框、按钮、列表框、表控件和滑块的值,就会生成 $MsgSelect
  • 假设用户已更改了控件中的值,则在退出控件时,文本框生成 $MsgSelect
  • 组合框以与列表框或文本框相同的方式生成 $MsgSelect,这取决于用户与之进行交互的控件部分。如果更改控件的编辑部分,则组合框在更改值时第一次生成 $MsgSelect,然后在光标离开控件时再次生成它。
  • 按钮在每次用户选择它们时生成 $MsgSelect。但是,事件参数三或事件参数四中没有值。

事件参数三包含的值的数据类型取决于绑定到它的实例数据。如果未绑定标识,则数据是 $Unknown
事件参数四包含的值的数据类型取决于控件类型。例如,如果控件是选项按钮,则值是整数。如果控件是文本框,则值是字符串。


$MsgTimer

接收方 任意对话框。
说明 在响应一个计时器事件时接收到 $MsgTimer
事件参数 事件参数(整数)包含计时器标识,该计时器是通过 $MsgStartTimer 传送的。
窗口必须设置计时器,以便接收 $MsgTimer

MsgUser+n

接收方 具有事件处理器的任意对话框。
说明 这是一个用户定义的消息常量。
事件参数 使用用户定义消息可以传送任一事件参数。如果在 SendMessage 语句中对附加的参数赋值,则可以在事件处理器中对它们赋值。
接收窗口必须知道,对该消息来说,哪些参数是有效的。
所有用户定义消息必须具有一个 $MsgUser+n 值,其中,n 是选择用来赋值给新消息常量的任一数值。

窗口可接收的消息

本节讲述窗口可接收消息。

在可接收消息表中,$Event 栏中列出的项目代表消息常量。

“源”栏中列出的项目代表发送该消息的应用程序组件(对话框或窗口)的类型。

本栏中的条目确定消息的分类。例如,消息 $MsgCreate 具有源、对话框,因此是一个对话框可接收消息。该消息的其他信息,请参见"对话框可接收消息"。

"源"栏中列出的一些项目已进行了缩写。例如:

"参数"栏中列出为消息常量定义的事件参数。同义值以 $ 开头。(其他信息,请参见"窗口同义词"。)

可接收消息列表(只对窗口消息)

$Event 参数
$MsgActivate 类属窗口,滚动窗口 1=活动状态
$MsgButton 超文本窗口,对话框 1=按钮文本,2=按钮标识
$MsgChar 任意窗口 $KeyCode
$MsgCreate 任意窗口 只应用于对话框
$MsgDestroy 任意窗口
$MsgImage 图像的父图像 1=图像标识
$MsgLabel 超文本窗口,对话框 1=按钮文本,2=按钮标签
$MsgMouse 鼠标区 1=标识,2=鼠标活动,3=X,4=Y
$MsgMenu 菜单条

工具条

$MenuSelection (n*100 + m)

$MenuSelection (1-99)

$MsgPaint 类属
$MsgPaintStatus 具有状态条的任意窗口或对话框
$MsgScroll 类属窗口 2=拇指场所, 1=$WinHScroll / $WinVScroll
$MsgSize 可滚动类属窗口 1=窗口宽度,2=窗口高度
$MsgTimer 任意 1=计时器标识
$MsgUser+n 任意 属于发送者和接收者的详细信息

窗口同义词

在可接收消息表(只对窗口消息)中显示的同义词在本节用它们各自的消息进行解释。关于使用同义词的一般信息,请参见"消息参数和同义词"。

窗口可接收消息说明

$MsgActivate

接收方 窗口或滚动窗口。
说明 在激活或取消激活窗口或滚动窗口时接收到 $MsgActivate
事件参数 有一个事件参数:
  • 如果窗口是活动的,该参数等于 1
  • 如果窗口不是活动的,该参数等于 0
响应 如果窗口是活动的,它将接收到焦点。
如果取消对窗口的激活,焦点将移动到被激活的窗口。
窗口可以改变颜色,以反应窗口是不是活动的,这取决于系统配置。

$MsgButton

接收方 超文本查看器窗口。
说明 在超文本查看器窗口中选择标识类型(缺省类型)的按钮时,将接收到 $MsgButton
注:超文本查看器中的按钮代表连到另一个实体(例如,其他文件、现存文件中的另一点、图像、声音文件或可执行文件)的链接。
事件参数 有两个事件参数:
  • 事件参数一(字符串),包含按钮文本。
  • 事件参数二(整数),包含按钮标识。如果没有指定标识,缺省值将是 0。
响应 如果按钮标识是 0,而且事件处理器返回的是 0,超文本查看器窗口将修改按钮文本并在活动文件中搜索相匹配的文本。如果找到匹配内容,将滚动文件,以便让匹配的行显示在查看器的顶端。

$MsgChar

接收方 任意对话框。
说明 只要用户从键盘键入了活动窗口不对其进行处理的字符,就会接收到 $MsgChar
事件参数 参数 $KeyCode 有可能被用于访问该字符。该字符可以是一个可打印字符或标准 $Key 定义之一。(关于可用键代码的完整列表,请参见 $KeyCode。)

$MsgCreate

接收方 任意窗口或对话框。
说明 在对窗口或对话框中的控件进行初始化后将接收到该消息。接收到该消息后,将绘制窗口和对话框。

$MsgDestroy

接收方 任意窗口。
说明 $MsgDestroy 是窗口在被损坏前接收到的最后一条消息(除非损坏窗口是应用程序的一部分)。
接收到 $MsgDestroy 消息后,所有的子窗口仍然存在,除非它们已被显式地损坏。

$MsgImage

接收方 任意图像窗口。
说明 图像窗口将 $MsgImage 发送出去,以通知其父窗口用户已用鼠标单击了该图像。
事件参数 事件参数(整数)具有所选图像的标识。

$MsgLabel

接收方 超文本查看器窗口。
说明 在超文本查看器窗口中选择一个 LABEL 类型的按钮时将接收到 $MsgLabel
事件参数 有两个事件参数:
  • 事件参数一(字符串),包含按钮文本。
  • 事件参数二(整数),包含按钮标签。

$MsgMenu

接收方 具有菜单条或工具条的任意对话框。
说明 在菜单条或工具条上作出选择时,将接收到 $MsgMenu
事件参数 $MenuSelection 包含所选菜单项的标识。
可以将所选菜单项的标识发送给具有菜单条的任一窗口。这将模拟用户选择菜单项的操作,该菜单项的下标包含在 MenuSelection 参数中。
从工具条上进行选择将生成一个从 1 到 99 的值,这取决于图符在工具条上的位置。
从菜单条上进行选择将根据这个公式生成一个值:
n * 100 + m

其中 n 是活动选择在主菜单条上的位置,m 是选择在子菜单上的位置。
其他信息,请参见 WinSetMenuBar

$MsgMouse

接收方 任意窗口。
说明 如果在鼠标区有鼠标活动,则将接收到 $MsgMouse。该鼠标区是由
WinCreateMouseRect 语句定义的。
事件参数 $MsgMouse 具有下列事件参数:
  • 第一个事件参数(整数)包含传送给 WinCreateMouseRect 的标识。
  • 第二个事件参数(整数)包含鼠标活动的类型(请参见下面的鼠标活动列表)。
  • 第三个事件参数(整数)包含鼠标位置的横坐标。
  • 第四个事件参数(整数)包含鼠标位置的纵坐标。
每次处理 $MsgMouse 都必须调用 WinSetMousePointer

已定义的鼠标活动包括:

  • $MouseNone
  • $MouseLeftClick
  • $MouseRightClick
  • $MouseLeftDouble
  • $MouseRightDouble
  • $MouseLeftStartDrag
  • $MouseLeftEndDrag

其他信息,请参见 WinCreateMouseRect

$MsgPaint

接收方 任意类属窗口。
说明 当必须重新绘制整个或部分窗口时将接收到 $MsgPaint

$MsgScroll

接收方 任意窗口。
说明 当用户在水平或垂直滚动条上移动滚动框时,将接收到 $MsgScroll
事件参数 有两个事件参数:
  • 第一个事件参数(整数)包含生成该消息的滚动条。它是 $WinHScroll(水平)或 $WinVScroll(垂直)之一。
  • 第二个事件参数(整数)包含滚动条的位置。该值的单位是应用程序在 WinSetScroll bar 语句中指定的。

$MsgSize

接收方 任意类属窗口或具有滚动条的窗口。
说明 设置窗口大小。

$MsgTimer

接收方 任意窗口。
说明 在响应一个计时器事件时接收到 $MsgTimer
事件参数 事件参数(整数)包含计时器标识,该计时器是通过 $MsgStartTimer 而传送的。
窗口必须设置一个计时器,以便接收 $MsgTimer

$MsgUser+n

接收方 具有事件函数的任意窗口。
说明 这是一个用户定义的消息常量。
事件参数 使用用户定义消息可以传送任一事件参数。如果可以在 SendMessage 语句中对附加的参数赋值,则可以在事件函数对它们赋值。
所有用户定义的消息必须具有一个

$MsgUser+n

其中,n 是选择用来赋值给新消息常量的任一数值。

DDE 可接收消息

本节讲述的消息是为在 DDE 应用程序中运行的对话框或应用程序而定义的事件处理器可接收的。

$Event 栏中列出的项目代表消息常量。

“源”栏中列出的项目代表发送该消息的应用程序组件(对话框或窗口)的类型。

本栏中的条目确定消息的分类。例如,消息 $MsgCreate 具有源、对话框,因此是一个对话框可接收消息。该消息的其他信息,请参见"对话框可接收消息"。

在"源"栏中,任意代表正在运行的任意应用程序中的任意对话框或窗口项目。

"参数"栏中列出为消息常量定义的事件参数。同义词以 $ 开头。其他信息,请参见"DDE 同义词"。

下表列出的消息是为在 DDE 应用程序中运行的对话框或应用程序而定义的事件处理器可接收的。

可接收消息列表(只列出窗口消息)

$Event 参数
$MsgDDEAcknowledge 任意 $DDEWindow, $DDEStatus
$MsgDDEAdvise 任意 $DDEWindow, $DDETopic
$MsgDDEData 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEExecute 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEInitAcknowledge 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEInitiate 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDEPoke 任意 $DDEWindow, $DDETopic, $DDEData
$MsgDDERequest 任意 $DDEWindow, $DDETopic
$MsgDDETerminate 任意 $DDEWindow
$MsgDDEUnAdvise 任意 $DDEWindow, $DDETopic



提示:不论何时接收到 DDE 消息,都应当返回 $MsgDDEAcknowledge 消息。返回 $MsgDDEAcknowledge 失败可能会导致内存丢失。

提示:如果想在接收到 $MsgDDExxx 时发送肯定应答,只需 EXIT($DDEAck)即可。如果想发送否定应答,只需 EXIT(0)即可。

DDE 同义词

DDE 消息有一组特殊的可用同义词。这些同义词是:

在使用这些标志时,请使用 BitAnd 语句来分析它们。其他信息,请参见 BitAnd

DDE 定义

下表列出用于说明消息的术语,这些消息是在 DDE 应用程序之间传送的。

定义
会话 两个应用程序在 DDE 会话中的信息交换。
伙伴 DDE 会话成员。
客户机 在会话中向另一个应用程序请求信息的伙伴。
服务器 向客户机 DDE 伙伴提供被请求信息的伙伴。
应用程序/主题对 如果用户是 DDE 客户,这就是用户为建立与 DDE 服务器的通信链接而传送给它的内容。
反之,如果用户是 DDE 服务器,这就是用户所能提供服务的应用程序和主题的组合。

DDE 可接收消息说明

$MsgDDEAcknowledge

接收方 任一 DDE 伙伴(客户机或服务器)。
说明 该消息向 DDE 伙伴通知请求操作的成功或失败。响应下列任一消息都应当发送 $MsgDDEAcknowledge
  • DDEAdvise
  • DDEData
  • DDEExecute
  • DDEPoke
  • DDERequest
  • DDEUnAdvise
事件参数
(Windows)
在 Windows 中,下列事件参数与 DDEExecute 语句一起使用。
  • $DDETopic - 当前 DDE 会话的处理主题,或以 $Unknown 作为类属响应。
  • $DDEData - 执行的命令。
  • $DDEStatus - 关于状态码列表,请参见 “DDE 同义词”。

在 Windows 中,下列事件参数用于所有其他 DDE 消息。

  • $DDETopic - 主题或项目
  • $DDEData - $Unknown
  • $DDEStatus - 关于有效的状态码列表,请参见 “DDE 同义词”。
事件参数(OS/2) 在 OS/2 中,下列事件参数与 DDEExecute 语句一起使用。
  • $DDETopic - $Unknown
  • $DDEData - 长度为零的字符串
  • $DDEStatus - 关于有效的状态码列表,请参见 “DDE 同义词”。

在 OS/2 中,下列事件参数与所有其他 DDE 消息一起使用。

  • $DDETopic - 主题或项目
  • $DDEData - 长度为零的字符串
  • $DDEStatus - 关于有效的状态码列表,请参见 “DDE 同义词”。
如果接收到的消息是 $DDEData,则可以发送它,而不是实际的消息数据。

$MsgDDEAdvise

接收方 任意 DDE 服务器。
说明 请求 $DDETopic 所包含主题的连续更新。这是只有文本的消息。
事件参数(Windows) 下列事件参数与 Windows 一起使用。
  • $DDETopic - 关于通知谁的主题或项目
  • $DDEData - $Unknown
  • $DDEStatus - 关于有效的状态码列表,请参见 “DDE 同义词”。
事件参数(OS/2) 下列事件参数与 OS/2 一起使用。
  • $DDETopic - 主题或项目
  • $DDEData - $Unknown
  • $DDEStatus - 关于有效的状态码列表,请参见 “DDE 同义词”。
响应 每更改一次数据,应用程序都应当执行 DDEData

$MsgDDEData

接收方 任意 DDE 客户机。
说明 有两种情况要发送该消息:
  • 响应 DDERequest 消息时
  • 客户机请求通知的主题或项目发生数据更改时
事件参数 有几个可能的事件参数:
  • $DDETopic,包含主题或项目
  • $DDEData,包含数据值
  • 只对 OS/2:$DDEStatus
出口值 如果使用了数据,则返回 $DDEAck。例如:
EXIT ($DDEAck)
如果发送数据来响应 DDEAdvise,那么 $DDEStatus 标志将被设置成 $DDENoData。在这种情况下,应用程序发出 DDERequest 来检索实际的数据。

$MsgDDEExecute

接收方 任意 DDE 服务器。
说明 发送该消息来告诉服务器采取某些操作。
事件参数(Windows) 在 Windows 中,使用下列事件参数。
  • $DDETopic - $Unknown
  • $DDEData - 要执行的命令。
事件参数(OS/2) 下列事件参数与 OS/2 一起使用。
  • $DDETopic - 主题或项目
  • $DDEData - 要执行的命令串
  • $DDEStatus - 关于有效的状态码列表,请参见 “DDE 同义词”。
出口值 命令结束时,应当发送 $DDEAck
定义命令串是伙伴的责任。

$MsgDDEInitAcknowledge

接收方 任意 DDE 服务器。
说明 $MsgDDEInitAcknowledge 是为了响应 DDEInitiate 而被接收到的。与传送给 DDEInitiate 的应用程序或主题对相匹配的每个应用程序都发送一个具有下列项目的 $MsgDDEInitAcknowledge
  • 其 DDE 窗口句柄($DDEWindow)
  • 匹配的应用程序/主题对($DDEData)
  • 会话主题($DDETopic)
事件参数 有两个事件参数:
  • $DDETopic 包含被请求的主题
  • $DDEData 包含响应该请求的应用程序
将向每个匹配的应用程序或主题对发送一个 $MsgDDEInitAcknowledge 消息。例如,如果将主题串指定为空,服务器将向它支持的每个主题发送 $MsgDDEInitAcknowledge

$MsgDDEInitiate

接收方 任意潜在的 DDE 服务器应用程序。
说明 如果某个应用程序请求的接收应用程序是一个 DDE 服务器,则将接收到 $MsgDDEInitiate。接收应用程序必须检查 $DDEData 中的应用程序名称,以确定它是否为目标接收人。
如果该应用程序是目标接收人,它必须检查 $DDETopic 的值,以确定它能否满足该请求。 $DDEData$DDETopic 中的长度为零的字符串是任一应用程序和主题都可以接受的匹配。
事件参数 有两个事件参数:
  • $DDETopic,包含主题。如果这是 $Unknown 或空的字符串(''),客户机将请求回答是否能就该主题进行会话。
  • $DDEData,包含客户机请求与其会话的应用程序。如果这是 $Unknown 或空的字符串(''),客户机将请求回答是否能就该主题进行会话。
响应 调用 DDERespond。传送需要的每个主题和应用程序名称。
在处理 $MsgDDEInitiate 消息时,请不要使用 DlgBoxWinMessageBoxWinWait
$MsgDDEInitiate 向应用程序广播消息,并在返回响应之前锁定消息队列。与此同时,每个语句启动一个也在等待消息队列的回答的事件处理器。
这些语句防止其他应用程序向该消息队列发送消息。这样会造成死锁,而死缩将有效地锁定用户接口。

$MsgDDEPoke

接收方 任意 DDE 服务器。
说明 它包含未经请求的数据(在响应一个通知或请求消息时未发送的数据)。
事件参数 有几种事件参数:
  • $DDETopic,包含被指向的主题或项目
  • $DDEData,包含数据值
  • 只对 OS/2:$DDEStatus
响应 如果使用或处理了数据,接收应用程序必须发送应答($DDEAck)。

$MsgDDERequest

接收方 任意 DDE 服务器。
说明 这是对关于某个主题的数据的请求。
事件参数 有两个事件参数:
  • $DDETopic,包含被请求的主题或项目
  • $DDEData,包含 $Unknown
响应 调用 DDEData。传入被请求的信息。
出口值 如果返回了数据,则用 $DDEAck 退出。

$MsgDDETerminate

接收方 任一 DDE 伙伴(客户机或服务器)。
说明 终止会话。两者中的任一伙伴都可以随时发送 $MsgDDETerminate
事件参数 关于有效的状态标志列表,请参见“DDE 同义词”主题。
响应 如果调用 DDETerminate,则应当不作出响应。如果没有调用 DDETerminate,则应当调用它。

$MsgDDEUnAdvise

接收方 任意 DDE 服务器。
说明 它取消给定客户机或主题对的通知请求。这是只有文本的消息。
事件参数(Windows) 在 Windows 中,使用下列事件参数:
  • $DDETopic - 要对其停止通知的主题
  • $DDEData - $Unknown
事件参数(OS/2) 下列事件参数与 OS/2 一起使用:
  • $DDETopic - 要对其停止通知的主题
  • $DDEData - 长度为零的字符串
如果主题字符串为空,必须取消用于客户机的所有通知。

可传输的消息

本节包括下列主题:

TSD 脚本程序可以向应用程序的其他部分或窗口系统传输消息。任何窗口或对话框都可以相应地发送或投递任何可传输消息。

可传输消息表列出了可以发送或投递给窗口句柄的事件消息。

$Event 栏中列出的项目代表消息常量。

“接收者”栏中列出的项目代表接收消息的应用程序组件(对话框或窗口)的类型。

“接收者”栏中列出的一些项目已进行了缩写。例如:

“投递/发送”栏指示发送消息时是使用 PostMessageSendMessage 语句之一,还是两者都用。如果发送了一个项目,则"发送消息"主题将对其进行更完整的说明。如果投递了一个项目,则"投递消息"主题将对其进行更完整的说明。

"参数"栏包含这些消息的参数。

提示:参数的顺序是很重要的,因为只能按列出参数的顺序来使用参数。

下表列出可以发送(使用 SendMessage 语句)或投递(使用 PostMessage 语句)给窗口句柄的事件消息。

可传输消息表

$Event 接收者 投递/发送 参数
$MsgActivate 具有框架的任意窗口 S, P
$MsgChar 任意对话框 S, P 1=字段标识, 2=字段名称, 3=键代码
$MsgClockSet 时钟窗口 S 时间
$MsgClose 任意 S
$MsgDisplayImage 超文本查看器窗口 S, P 1=文件名, 2=标题, 3=样式
$MsgEnable 任意 S, P enableState
$MsgMaximize 包含框架的任意对话框或窗口 S
$MsgMenu 具有菜单条的任意窗口或对话框 S, P menuSelection, 2=字符串
$MsgMinimize 具有框架的任意窗口或对话框 S
$MsgMove 具有框架的任意窗口或对话框 S 1=x, 2=y
$MsgOpenFile 超文本查看器窗口 S, P 1=文件名, 2=标题, 3=样式
$MsgPaint 任意 S, P
$MsgPaintStatus 具有状态条的任意窗口或对话框 P
$MsgPlaySound 超文本查看器窗口 S, P 1=文件名, 2=标题, 3=样式
$MsgReadOnly 对话框 S writeState
$MsgRestore 具有框架的任意窗口或对话框 S
$MsgSearch 超文本查看器窗口 S, P searchText
$MsgSetIcon 窗口 S iconFile
$MsgSetImage 图像窗口
对话框,可滚动窗口
S
S
imageFile
窗口标识
$MsgSetSize 具有框架的任意窗口或对话框 S 1=宽度, 2=高度
$MsgSetTitle 具有框架的任意窗口或对话框 S 标题
$MsgShow 任意 S visibilityState
$MsgSize 可滚动类属窗口 S 1=宽度, 2=高度
$MsgStartTimer 具有事件处理器的任意窗口或对话框 S 1=计时器标识,2=间隔
注意:间隔不能超过 65535。
$MsgStopTimer 具有事件处理器的任意窗口或对话框 S 计时器标识
$MsgTimer 任意对话框 S, P 计时器标识
$MsgUpdate 超文本查看器窗口 S, P
$MsgUser+n 任意 S, P 属于发送者和接收者的详细信息

下表列出相同的可传输事件消息,并说明各个消息的影响。

可传输消息的定义

事件 说明
$MsgActivate 激活接收窗口
$MsgClockSet 将时钟设置成新的时间
$MsgClose 关闭窗口
$MsgDisplayImage 在超文本查看器窗口中创建新的图像查看器
$MsgEnable 将窗口设置成启用状态
$MsgMaximize 最大化目标窗口
$MsgMenu 对用户对菜单项的选择进行模拟
$MsgMinimize 将目标窗口最小化成桌面上的一个图符
$MsgMove 移动目标窗口的左上角
$MsgOpenFile 创建一个新的超文本查看器窗口来显示文件
$MsgPaint 引起目标窗口对自己的重新绘制
$MsgPaintStatus 引起目标窗口对自己的状态条的重新绘制
$MsgPlaySound 创建一个新的超文本查看器窗口来播放声音文件
$MsgReadOnly 通知对话框将特定控件设置为只读
$MsgRestore 使目标恢复其大小
$MsgSearch 通知超文本查看器窗口搜索某行并将其移动到超文本查看器窗口的顶端
$MsgSetIcon 设置窗口被最小化后的图符
$MsgSetImage 设置图像,使其显示在图像窗口中
$MsgSetSize 设置窗口的总体大小
$MsgSetTitle 设置窗口标题条的内容
$MsgShow 设置窗口的视觉属性
$MsgSize 设置窗口的工作区大小
$MsgStartTimer 为窗口启动计时器
$MsgStopTimer 停止计时器
$MsgTimer 对将计时器消息发送到窗口进行模拟
$MsgUpdate 通知对话框根据实例记录中的数据更新其控件显示的值。
只能将该消息发送或投递给对话框。
该消息促使对话框根据其实例记录中的数据更新其控件显示的值。
该消息是使用一个命令来更改对话框中的多个字段的有用机制(与调用多个 DlgSetFieldValue 函数相对)。请更新记录中的值,并将该消息发送给对话框。
$MsgUser+n 向窗口传送一个程序定义的消息

传输消息:投递与发送

TSD 脚本提供两种内置的例行程序来传输消息和数据:SendMessagePostMessage。发送消息和投递消息的主要区别是:SendMessage 在被调用的事件处理器完成对消息的处理之前要进行等待,而 PostMessage 则将信息放进事件队列中,允许用户通过投递例行程序来继续工作,而无需等待消息处理的结束。

不能将某些类型的消息投递给某些种类的窗口。

在传输消息时,可以相应地使用 SendMessagePostMessage 语句。这些语句的语法基本相同:

SendMessage (VAL whdl: WINDOW,
 VAL message: INTEGER,
 [VAL or REF messageParm: ANY...]):
 INTEGER;

其他信息,请参见 SendMessagePostMessage

“可传输消息”之一后的主题是按可发送(使用 SendMessage 来传输)和可投递(使用 PostMessage 来传输)来组织的。

发送的消息

可以使用 SendMessage 语句来将下列消息发送给窗口句柄。

$MsgActivate

发送到 可以发送给具有框架的任一窗口
说明 它使接收窗口变成活动窗口

$MsgClockSet

发送到 可以发送给具有时钟的任一窗口
说明 将时钟设置成新的时间
事件参数 事件参数(时间)包含时钟的新时间
请参见 WinCreateClock

$MsgClose

发送到 可以发送给任一窗口
说明 它损坏窗口

$MsgDisplayImage

发送到 可以发送给超文本查看器窗口
说明 创建新的图像查看器并显示指定文件
事件参数 有三个事件参数:
第一个事件参数包含显示在超文本查看器窗口中的文件名(字符串)
第二个事件参数包含显示在标题条中的标题(字符串)
第三个事件参数包含由下列样式的任一组合而组成的样式,这些样式是通过 BitOr 语句组合的:
  • $HyperScrollImage - 超文本查看器窗口,具有垂直滚动条。
  • $HyperScaleImage - 调整图像大小来填满超文本查看器窗口。
  • $HyperNoWordWrap - 不对超文本查看器窗口中的文本进行字环绕。

$MsgEnable

发送到 可以发送给任一窗口。
说明 将窗口设置成启用状态。
事件参数 该事件参数包含 TRUE 或 FALSE,代表窗口的启用状态。
  • TRUE 表示窗口是启用的
  • FALSE 表示窗口是禁用的

$MsgMaximize

发送到 可以发送给具有框架的任一窗口
说明 它最大化接收窗口以填满整个屏幕

$MsgMenu

发送到 可以发送给具有菜单条的任一窗口
说明 对用户选择指定菜单选项进行模拟
事件参数 该事件参数包含所选菜单项的值(整数)。该值是通过下面这个公式来计算的
n * 100 + m

其中 n 是活动选择在主菜单条上的位置,m 是选择在子菜单上的位置。

其他信息,请参见 WinSetMenuBar

$MsgMinimize

发送到 可以发送给具有框架的任一窗口
说明 将接收窗口最小化成一个图符

$MsgMove

发送到 可以发送给任一窗口
说明 将窗口框架的左上角移动到指定的位置
事件参数 有两个事件参数:
  • 第一个事件参数包含窗口新的横坐标(整数)。
  • 第二个事件参数包含窗口新的纵坐标(整数)。

$MsgOpenFile

发送到 可以发送给超文本查看器窗口
说明 创建新的文件查看器并显示指定文件
事件参数 有三个事件参数:
  • 第一个事件参数包含要打开的文件的文件名(字符串)。
  • 第二个事件参数包含显示在文件查看器中的标题(字符串)。
  • 第三个事件参数包含下列样式的任一组合,这些样式组合是通过 BitOr 语句组合的:
    • $HyperScrollImage -超文本查看器窗口,具有垂直滚动条。
    • $HyperScaleImage - 调整图像大小来填满超文本查看器窗口。
    • $HyperNoWordWrap - 不对超文本查看器窗口中的文本进行字环绕。

$MsgPlaySound

发送到 可以发送给超文本查看器窗口。
说明 创建新的声音播放器并播放指定文件。
事件参数 有三个事件参数:
  • 第一个事件参数包含要播放的声音文件的文件名(字符串)。
  • 第二个事件参数包含显示在超文本查看器窗口中的标题(字符串)。
  • 第三个事件参数包含超文本查看器的样式(使用值 0)。

$MsgReadOnly

发送到 可以发送给 TSD 脚本对话框
说明 设置或清除对话框中的只读标志
事件参数 该事件参数包含 TRUE 或 FALSE。
  • TRUE 表示该对话框是只读的。
  • FALSE 表示该对话框是可读/写的。
其他信息,请参见 DlgBox

$MsgRestore

发送到 可以发送给具有框架的任一窗口
说明 将接收窗口恢复到原始大小(在使其最小化或最大化之前)

$MsgSearch

发送到 可以发送给超文本查看器窗口。
说明 在活动超文本查看器子窗口中搜索指定文本。如果找到匹配内容,将把该匹配的行显示在查看器的顶端。
事件参数 事件参数包含要在超文本查看器窗口中搜索的字符串。
活动超文本查看器子窗口应当是一个文本查看器。如果是为了响应按钮消息而发送搜索消息,这就总是正确的。可以将用户定义的消息发送给具有事件函数的任意窗口。
所有用户定义的消息必须具有一个 $MsgUser 值或更大的值。使用用户定义消息可以传送任一附加参数。
接收窗口必须知道,对该消息来说,哪些参数是有效的。如果可以在 SendMessage 语句中对附加的参数赋值,则可以在事件函数中它们赋值。

$MsgSetIcon

发送到 可以发送给类属窗口、滚动窗口、超文本查看器窗口或对话框。
说明 设置最小化窗口时所显示的图符。
事件参数 事件参数包含要显示的图符文件名(字符串)。

$MsgSetImage

发送到 可以发送给图像窗口。
说明 设置图像。
事件参数 事件参数包含要显示的图符文件名(字符串)。该图像可以是 OS/2 位图文件、Windows 位图或 .PCX 图像文件。
其他信息,请参见 WinCreateImage

$MsgSetSize

发送到 可以发送给任一窗口
说明 设置窗口大小(包括框架、标题栏和其他元素)
事件参数 有两个事件参数:
  • 第一个事件参数包含窗口宽度(整数)。
  • 第二个事件参数包含窗口高度(整数)。

$MsgSetTitle

发送到 可以发送给具有标题条的任一窗口
说明 将标题条文本设置成指定文本
事件参数 该事件参数包含要在标题条中显示的文本(字符串)

$MsgShow

发送到 可以发送给任一窗口
说明 设置窗口的可视性
事件参数 该事件参数包含 TRUE 或 FALSE,指示窗口是可见的(TRUE)还是不可见的(FALSE)

$MsgSize

发送到 可以发送给类属窗口或滚动窗口。
说明 将窗口的用户区大小设置成指定的高度和宽度。相应地调整窗口框架的大小。
事件参数 有两个事件参数:
  • 第一个事件参数包含窗口宽度(整数)。
  • 第二个事件参数包含窗口高度(整数)。

$MsgStartTimer

发送到 可以发送给类属窗口或滚动窗口。
说明 为窗口启动一个系统计时器。计时器将根据指定的时间间隔向该窗口发送 $MsgTimer 消息。
事件参数 有两个事件参数:
  • 第一个事件参数包含计时器标识(整数)。
  • 第二个事件参数包含 $MsgTimer 消息的间隔(整数)。该间隔以毫秒为单位。对 Windows 和 OS/2 来说,该间隔均不能超过 65535。
在向窗口发送 $MsgTimer 消息时,操作系统不能保证发送间隔的准确性。
可用计时器的数目是有限的。请始终在不再需要计时器时关掉它。

$MsgStopTimer

发送到 可以发送给类属窗口或滚动窗口
说明 停止使用 $timerId 启动的计时器
事件参数 该事件参数包含计时器标识(整数)

$MsgTimer

发送到 可以发送给类属窗口或滚动窗口
说明 模拟向窗口发送计时器消息
事件参数 该事件参数包含计时器标识(整数)

$MsgUser + n

发送到 用户定义的任意窗口或对话框。
说明 这是一个用户定义的消息常量。
事件参数 使用用户定义消息可以传送任一参数。如果可以在 SendMessage 语句中对附加的参数赋值,则可以在事件函数对它们赋值。
接收窗口必须知道,对该消息来说,哪些参数是有效的。
所有用户定义消息必须具有 $MsgUser+n 值,其中,n 是选择用来赋值给新消息常量的任一数值。

投递的消息

可以使用 PostMessage 语句来将下列消息发送给窗口句柄。

$MsgMenu

投递到 可以投递给具有菜单条的任一窗口。
说明 对用户对菜单项(该菜单项的标识是 menuSelection 语句中指定的)的选择进行模拟。
事件参数 menuSelection(整数)。
其他信息,请参见 WinSetMenuBar

$MsgMove

投递到 可以投递给任一窗口
说明 将窗口框架的左上角移动到指定的位置
事件参数 有两个事件参数:
  • 第一个事件参数包含窗口横坐标(整数)。
  • 第二个事件参数包含窗口纵坐标(整数)。

$MsgPaint

投递到 可以投递给任一窗口
说明 请求窗口重新自行绘制

$MsgPaintStatus

投递到 可以投递给具有状态条的任一窗口
说明 请求目标窗口重新绘制自己的状态条

$MsgUser+n

投递到 可以将用户定义的消息发送给具有事件函数的任意窗口。
说明 所有用户定义的消息必须具有一个 $MsgUser 值或更大的值。
事件参数 使用用户定义消息可以传送任一事件参数。接收窗口必须知道,对该消息来说,哪些参数是有效的。所有参数都采用值传递。

DDE 可传输消息

DDE 应用程序的所有拨出通信都应当经过相应的 TSD 脚本语句的处理。请参见下列语句:

提示:每次接收到 DDE 消息,都应当返回 $MsgDDEAcknowledge 消息。返回 $MsgDDEAcknowledge 失败可能会导致内存丢失。

提示:如果想在接收到 $MsgDDExxx 时发送肯定应答,只需 EXIT($DDEAck)即可。如果想发送否定应答,只需 EXIT(0)即可。


Tivoli 服务台 6.0 开发工具包脚本语言参考

返回主页

版权所有