基 础 函 数 参 考


GUICtrlRecvMsg

发送消息到控件,并检索 lParam(参数)信息.

GUICtrlRecvMsg ( 控件ID , msg(消息) [, wParam(参数) [, lParam(参数类型)]] )

参 数

控件ID GUICtrlCreate... 函数返回的控件标识符.
msg(消息) 发送到控件的消息类型, 在 Windows 控件文档中定义.
wParam(参数) [可选参数] 发送到控件的第一个整型参数.
lParam(参数类型) [可选参数] 定义将返回的 lParam 类型:
0 (默认) 返回 wParam 与 lParam,
1 返回 lParam 字符串,
2 返回 lParam 的 RECT 结构.

返 回 值

成功: 返回 SendMessage 消息的 Windows API 返回值.
失败: 返回 0.

备 注

此函数允许发送特殊的 Windows 消息到使用 SendMessage API 的控件.
而这些功能往往是简单的 GUICtrlRead() 与 GUICtrlUpdate...() 函数无法实现的.

若未指定 wParam 和 lParam 参数, 则函数将返回含有两个元素的数组 (LPwParam, LPlParam).

若返回 RECT 结构, 则为 4 元素数组 (Left, Top, Right, Bottom).

相 关 函 数

GUICtrlSendMsg, GUICtrlUpdate...

函 数 示 例


#include <GUIConstantsEx.au3>
#include <EditConstants.au3>

GUICreate("我的 GUI") ; 创建居中显示的 GUI 窗口

Local $nEdit = GUICtrlCreateEdit("行 0", 10, 10)
GUICtrlCreateButton("确定", 20, 200, 50)

GUISetState()

For $n = 1 To 5
    GUICtrlSetData($nEdit, @CRLF & "行 " & $n)
Next


; 运行 GUI, 直到 GUI 被关闭
Do
    Local $msg = GUIGetMsg()
    If $msg > 0 Then
        Local $a = GUICtrlRecvMsg($nEdit, $EM_GETSEL)
        GUICtrlSetState($nEdit, $GUI_FOCUS) ; 设置编辑控件焦点

        ; 将显示控件返回的 wParam 和 lParam 值
        MsgBox(0, "当前选择", StringFormat("start=%d end=%d", $a[0], $a[1]))
    EndIf
Until $msg = $GUI_EVENT_CLOSE

provider with jb51.net (unicode)