Функция _GDIPlus_GraphicsBeginContainer

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


_GDIPlus_GraphicsBeginContainer

Начинает новый графический контейнер

#Include <GDIP.au3>
_GDIPlus_GraphicsBeginContainer($hGraphics, $tRectFDst, $tRectFSrc[, $iUnit = 2])

Параметры

$hGraphics Указатель на объект Graphics
$tRectFDst Структура $tagGDIPRECTF, которая вместе с $tRectFSrc, задает преобразование для контейнера
$tRectFSrc Структура $tagGDIPRECTF, которая вместе с $tRectFDst, задает преобразование для контейнера
$iUnit [необязательный] Единица измерения:
0 - Мировые координаты, нефизическая единица
1 - Единицы дисплея
2 - Единица в 1 пиксель
3 - Единица в 1 точку, или 1/72 дюйма
4 - Единица в 1 дюйм
5 - Единица в 1/300 дюйма
6 - Единица в 1 миллиметр

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

Успех:Возвращает GraphicsContainer, который может быть передан в _GDIPlus_GraphicsEndContainer для восстановления предыдущего состояния объекта Graphics
Ошибка:Возвращает -1, либо:
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall()
$GDIP_STATUS содержит не нулевое значение кода ошибки.

Примечания

Используйте эту функцию для создания вложенных графических контейнеров. Графические контейнеры используются для сохранения состояния Graphics, такие как преобразования, отсечения областей и различные свойства отрисовки

См. также

_GDIPlus_GraphicsEndContainer

Пример

#include <GDIP.au3>
#include <GUIConstantsEx.au3>

_Example()

Func _Example()
    Local $hGUI, $hGraphics, $hBrush, $iGraphicsCont, $tDstRect, $tSrcRect

    ; Инициализирует библиотеку GDI+
    _GDIPlus_Startup()

    $hGUI = GUICreate("Создаёт графический контейнер", 400, 350)
    GUISetState()

    ; Создаёт графический объект из дескриптора окна
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    ; Создаёт прямоугольник используемый графическим контейнером
    $tSrcRect = _GDIPlus_RectFCreate(0, 0, 200, 100)
    $tDstRect = _GDIPlus_RectFCreate(100, 100, 200, 200)

    ; Создаёт графический контейнер размером (100, 100) с масштабом (1, 2)
    $iGraphicsCont = _GDIPlus_GraphicsBeginContainer($hGraphics, $tDstRect, $tSrcRect)

    ; Создаёт заполненный эллипс в контейнере
    $hBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000) ; Красный
    _GDIPlus_GraphicsFillEllipse($hGraphics, 0, 0, 100, 60, $hBrush)

    ; Завершает контейнер и сбрасывает состояние graphics в состояние, которое было перед началом создания контейнера
    _GDIPlus_GraphicsEndContainer($hGraphics, $iGraphicsCont)

    ; Заливка эллипса вне контейнера
    _GDIPlus_BrushSetFillColor($hBrush, 0xFF0000FF) ; Синий
    _GDIPlus_GraphicsFillEllipse($hGraphics, 0, 0, 100, 60, $hBrush)

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Освобождает ресурсы
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphics)

    ; Закрывает библиотеку GDI+
    _GDIPlus_Shutdown()
EndFunc