函数参考


GUICtrlSendMsg

发送一个消息到控件.

GUICtrlSendMsg ( 控件ID, msg , wParam, lParam )

参数

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

返回值

成功: 返回 SendMessage(Windows API) 的返回值.
失败: 返回 0.

注意/说明

此函数允许我们使用 SendMessage(API 函数) 来把某些特殊的 Windows 消息直接发送到控件上.它可以用来启用某些特殊的控件功能,而这些功能往往是简单的 GUICtrlRead() 和 GUICtrlUpdate...() 函数无法实现的.

参数(wParam 和 lParam)可以是整型值也可以是字符串.

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

相关

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

示例/演示


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

GUICreate("My GUI") ; will create a dialog box that when displayed is centered

Local $nEdit = GUICtrlCreateEdit("line 0", 10, 10)
GUICtrlCreateButton("Ok", 20, 200, 50)
GUISetState()

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


; Run the GUI until the dialog is closed
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) ; set focus

        MsgBox(0, "Currentline", $nline)
    EndIf
Until $msg = $GUI_EVENT_CLOSE