GUICtrlSendMsg
Отправляет сообщение элементу
GUICtrlSendMsg ( controlID, msg , wParam, lParam )
Параметры
controlID | Идентификатор элемента возвращаемый функцией GUICtrlCreate.... |
msg |
Тип сообщения посылаемого элементу, как определено в документации элементов окна. |
wParam |
Первый параметр, посылаемый элементу. |
lParam |
Второй параметр, посылаемый элементу. |
Возвращаемое значение
Успех: | Возвращает значение, возвращаемое SendMessage Windows API. |
Ошибка: | Возвращает 0. |
Примечания
Эта функция позволяет передавать специальные сообщения Windows непосредственно элементу с помощью SendMessage API. Это позволяет получить специальные параметры элемента, недоступные обычной функцией GUICtrlRead() и функциями GUICtrlUpdate....См. также
GUICtrlRecvMsg, GUICtrlCreate..., GUICtrlUpdate..., GUIGetMsg, GUICtrlReadПример
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <ProgressConstants.au3>
Example1()
Example2()
Func Example1()
Local $hGui, $iEdit, $msg, $n, $iNumLine
$hGui = GUICreate("GUICtrlSendMsg") ; Создаёт окно в центре экрана
$iEdit = GUICtrlCreateEdit("Строка 0", 10, 10)
GUICtrlCreateButton("Номер строки", 100, 180, 110)
GUISetState()
For $n = 1 To 5
GUICtrlSetData($iEdit, @CRLF & "Строка " & $n, 1)
Next
; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
Do
$msg = GUIGetMsg()
If $msg > 0 Then
$n = GUICtrlSendMsg($iEdit, $EM_LINEINDEX, -1, 0)
$iNumLine = GUICtrlSendMsg($iEdit, $EM_LINEFROMCHAR, $n, 0)
GUICtrlSetState($iEdit, $GUI_FOCUS) ; Устанавливает фокус
MsgBox(0, "Строка, в которой текстовый курсор", $iNumLine, 0, $hGui)
EndIf
Until $msg = $GUI_EVENT_CLOSE
GUIDelete($hGui)
EndFunc
Func Example2()
Local $iProgress, $iStart, $iStop
GUICreate("Прогресс в виде бегунка", 290, 90, -1, -1) ; Пример запуска и остановки бегунка прогресса.
$iProgress = GUICtrlCreateProgress(10, 10, 270, 20, $PBS_MARQUEE)
$iStart = GUICtrlCreateButton("&Старт", 10, 60, 70, 25)
$iStop = GUICtrlCreateButton("Стоп", 85, 60, 70, 25)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $iStart
GUICtrlSendMsg($iProgress, $PBM_SETMARQUEE, 1, 50) ; Высылает сообщение $PBM_SETMARQUEE и wParam = 1 для запуска бегунка.
Case $iStop
GUICtrlSendMsg($iProgress, $PBM_SETMARQUEE, 0, 50) ; Высылает сообщение $PBM_SETMARQUEE и wParam = 0 для остановки бегунка.
EndSwitch
WEnd
EndFunc