_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