向指定控件发送消息。
GUICtrlSendMsg ( 控件ID, msg , wParam, lParam )
参数
| 控件ID | 控件标识符(控件ID),可由 GUICtrlCreate... 函数的返回值获得。 |
| msg | 要发送到控件的消息类型,在 Windows 的控件文档中有定义。 |
| wParam | 要发送到控件的第一个参数。 |
| lParam | 要发送到控件的第二个参数。 |
返回值
| 成功: | 返回 SendMessage(Windows API) 的返回值。 |
| 失败: | 返回值为0。 |
注意
本函数允许我们使用 SendMessage(API 函数) 来把某些特殊的 Windows 消息直接发送到控件上。它可以用来启用某些特殊的控件功能,而这些功能往往是简单的 GUICtrlRead() 和 GUICtrlSet...() 函数无法实现的。
相关
GUICtrlRecvMsg, GUICtrlCreate..., GUICtrlSet..., GUIMsg, GUICtrlRead
示例
#include <GUIConstants.au3>
GUICreate("我的 GUI") ; 创建一个居中显示的窗口
$nEdit = GUICtrlCreateEdit ("line 0", 10,10)
GUICtrlCreateButton ("确定", 20,200,50)
GUISetState ()
for $n=1 to 5
GUICtrlSetData ($nEdit,@CRLF & "line "& $n)
next
$EM_LINEINDEX = 0x00BB
$EM_LINEFROMCHAR = 0x00C9
; 运行脚本直到窗口被关闭
Do
$msg = GUIGetMsg()
if $msg >0 then
$n=GUICtrlSendMsg ($nEdit, $EM_LINEINDEX,-1,0)
$nline=GUICtrlSendMsg( $nEdit, $EM_LINEFROMCHAR,$n,0)
GUICtrlSetState ($nEdit,256) ; 设置焦点
MsgBox (0,"光标所在行号",$nLine)
endif
Until $msg = $GUI_EVENT_CLOSE