基 础 函 数 参 考


GUICtrlSendMsg

发送消息到控件.

GUICtrlSendMsg ( 控件ID, msg(消息) , wParam(参数), lParam(参数) )

参 数

控件ID GUICtrlCreate... 函数返回的控件标识符.
msg(消息) 发送的消息类型, 在 Windows 的控件文档中定义.
wParam(参数) 发送的第一个参数.
lParam(参数) 发送的第二个参数.

返 回 值

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

备 注

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

参数 (wParam 与 lParam) 可以是整数或字符串.

GUICtrlSendMsg 用于发送没有特殊返回值类型的消息.
对于需要接收额外数据的更高级的消息发送就必须使用 GUICtrlRecvMsg().

相 关 函 数

GUICtrlRecvMsg, GUICtrlCreate..., GUICtrlUpdate..., GUIGetMsg, GUICtrlRead

函 数 示 例


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

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

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

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


; 运行 GUI, 直到 GUI 被关闭
Do
    Local $msg = GUIGetMsg()
    If $msg > 0 Then
        $n = GUICtrlSendMsg($nEdit, $EM_LINEINDEX, -1, 0)
        Local $nline = GUICtrlSendMsg($nEdit, $EM_LINEFROMCHAR, $n, 0)
        GUICtrlSetState($nEdit, $GUI_FOCUS) ; 设置焦点

        MsgBox(0, 0, "当前插入符所在行: " & $nline)
    EndIf
Until $msg = $GUI_EVENT_CLOSE

provider with jb51.net (unicode)