獲取控件消息。向指定控件發(fā)送消息并獲取返回的 lParam 的值。
GUICtrlRecvMsg ( 控件ID , msg [, wParam [, lParam類型]] )
參數(shù)
控件ID | 控件標(biāo)識符(控件ID),可由 GUICtrlCreate... 函數(shù)的返回值獲得。 |
msg | 要發(fā)送到控件的消息類型,在 Windows 的控件文檔中有定義。 |
wParam | [可選參數(shù)] 要發(fā)送到控件的第一個整型參數(shù)。 |
lParam類型 | [可選參數(shù)] 定義將返回的 lParam 的類型:0(默認)表示 wParam 和 lParam,1 表示 lParam 字符串,2 表示 lParam RECT 結(jié)構(gòu)體。 |
返回值
成功: | 返回 SendMessage(Windows API) 的返回值。 |
失。 | 返回值為0。 |
注意
本函數(shù)允許我們使用 SendMessage(API 函數(shù)) 來把某些特殊的 Windows 消息直接發(fā)送到控件上。它可以用來啟用某些特殊的控件功能,而這些功能往往是簡單的 GUICtrlRead() 和 GUICtrlSet...() 函數(shù)無法實現(xiàn)的。
相關(guān)
GUICtrlSendMsg, GUICtrlSet..., GUIGetMsg, GUICtrlRead
示例
#include <GUIConstants.au3>
GUICreate("我的 GUI") ; 創(chuàng)建一個居中顯示的窗口
$nEdit = GUICtrlCreateEdit ("line 0", 10,10)
GUICtrlCreateButton ("確定", 20,200,50)
GUISetState ()
for $n=1 to 5
GUICtrlSetData ($nEdit, @CRLF & "line "& $n)
next
$EM_GETSEL = 0x00B0
; 運行腳本直到窗口被關(guān)閉
Do
$msg = GUIGetMsg()
if $msg >0 then
$a=GUICtrlRecvMsg($nEdit, $EM_GETSEL)
GUICtrlSetState($nEdit,$GUI_FOCUS) ; 設(shè)置焦點到編輯框控件
; 顯示由控件返回的 wParam 和 lParam 值
MsgBox(0,"當(dāng)前選擇",StringFormat("start=%d end=%d", $a[0], $a[1]))
endif
Until $msg = $GUI_EVENT_CLOSE