Функция GUICtrlRecvMsg

         Описание функции


GUICtrlRecvMsg

Отправляет сообщение элементу и получает информацию в lParam.

GUICtrlRecvMsg ( controlID , msg [, wParam [, lParamType ]] )

Параметры

controlID Идентификатор элемента возвращаемый функцией GUICtrlCreate....
msg Тип сообщения посылаемого элементу, как определено в документации элементов окна.
wParam [необязательный] Целочисленный первый параметр, посылаемый элементу.
lParamType [необязательный] Определить тип (lParam) возвращаемых данных:
0 - (по умолчанию) для wParam и lParam
1 - для строкового параметра lParam
2 - для структуры lParam RECT.

Возвращаемое значение

Успех:Возвращает значение, возвращаемое SendMessage Windows API.
Ошибка:Возвращает 0.

Примечания

Эта функция позволяет передавать специальные сообщения Windows непосредственно элементу с помощью SendMessage API. Это позволяет получить специальные параметры элемента, недоступные обычной функцией GUICtrlRead() и функциями GUICtrlUpdate....

Если параметры wParam и lParamType не указаны, то возвращается массив из двух элементов (LPwParam, LPlParam).

RECT возвращает в массив 4 элемента (Левый, Верхний, Правый, Нижний).

См. также

GUICtrlSendMsg, GUICtrlUpdate...

Пример

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

GUICreate("Выдели часть текста") ; Создаёт окно в центре экрана

$iEdit = GUICtrlCreateEdit("Строка 0", 10, 10)
GUICtrlCreateButton("OK", 140, 180, 70)

GUISetState()

For $n = 1 To 5
    GUICtrlSetData($iEdit, @CRLF & "Строка " & $n, 1)
Next

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
Do
    $msg = GUIGetMsg()
    If $msg > 0 Then
        $a = GUICtrlRecvMsg($iEdit, $EM_GETSEL)
        If @error Then ContinueLoop
        GUICtrlSetState($iEdit, $GUI_FOCUS) ; Устанавливает фокус обратно в элемент Edit

        ; Отображает возвращённые значения wParam и lParam элемента Edit
        MsgBox(4096, "Текущий выбор", StringFormat("начальный=%d конечный=%d", $a[0], $a[1]))
    EndIf
Until $msg = $GUI_EVENT_CLOSE