Функция _WinAPI_GetWindowDC

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


_WinAPI_GetWindowDC

Возвращает контекст устройства (DC) для всего окна

#include <WinAPI.au3>
_WinAPI_GetWindowDC($hWnd)

Параметры

$hWnd Дескриптор окна

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

Успех:Возвращает дескриптор контекст устройства указанного окна
Ошибка:Возвращает 0

Примечания

Функция _WinAPI_GetWindowDC предназначена для специальных эффектов рисования в неклиентской области окна. Рисование в неклиентской области любого окна обычно не рекомендуется. Функция GetSystemMetrics может быть использована для извлечения размеров различных частей неклиентской области, такие как строка заголовка, меню и полосы прокрутки. После завершения рисования, должна быть вызвана функция _WinAPI_ReleaseDC, чтобы освободить контекст устройства. Не освобождение контекст устройства окна имеет серьезные последствия для рисования, запрошенного приложением.

См. также

_WinAPI_ReleaseDC

См. также

Искать GetWindowDC в библиотеке MSDN

Пример

#include <GUIConstantsEx.au3>
#include <WinAPI.au3>

_Main()

Func _Main()
    Local $hGUI, $hBrush, $hDC
    Local $hBrush, $hDC, $hGUI, $ptrRect, $tRect

    ; Создаёт GUI
    $hGUI = GUICreate("WinAPI", 400, 300)
    $hDC = _WinAPI_GetWindowDC($hGUI)
    GUISetState()

    $hBrush = _WinAPI_CreateSolidBrush(0x0000FF)
    $tRect = DllStructCreate($tagRECT)
    DllStructSetData($tRect, "Left", 20)
    DllStructSetData($tRect, "Top", 50)
    DllStructSetData($tRect, "Right", 200)
    DllStructSetData($tRect, "Bottom", 200)
    $ptrRect = DllStructGetPtr($tRect)
    _WinAPI_FrameRect($hDC, $ptrRect, $hBrush)

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Очищает ресурсы
    _WinAPI_DeleteObject($hBrush)
    _WinAPI_ReleaseDC($hGUI, $hDC)

EndFunc