WindowOutput()
Синтаксис
OutputID = WindowOutput(#Window)
Описание
Возвращает идентификатор "OutputID" указанного Окна, необходимый для выполнения на нём операций 2D графики.
Параметры
#Window Номер (внутренний для Purebasic), идентифицирующий указанное Окно.
Возвращаемое значение
Возвращает идентификатор "OutputID" указанного Окна, для выполнения на нём операций 2D графики. Это значение должно быть передано непосредственно в функцию StartDrawing(), чтобы появилась возможность начать рисование. После вызова функции StopDrawing(), текущий OutputID становится недействительным, поэтому каждый последующий запуск функции StartDrawing() требует нового вызова WindowOutput().
Пример
If OpenWindow(0, 0, 0, 220, 100, "Пример...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) Repeat Event = WaitWindowEvent() If Event = #PB_Event_Repaint ; Каждый раз при пропадании содержимого, Окно будет перерисовываться заново. StartDrawing(WindowOutput(0)) Box(10, 10, 50, 50, RGB(255, 0, 0)) StopDrawing() EndIf Until Event = #PB_Event_CloseWindow EndIf
Комментарии
Отрисованное в Окне содержимое стирается всякий раз, когда Окно или его часть перекрывается другим Окном, выходит за пределы экрана или когда Окно скрывается или сворачивается. Чтобы поддерживать вид отрисованного содержимого, его нужно перерисовывать после каждого события #PB_Event_Repaint. Более удобная альтернатива - рисовать содержимое посредством функции ImageOutput() и отображать как ImageGadget() в Окне приложения, и если нужно, обновлять с помощью функции SetGadgetState(). При таком способе все необходимые обновления обеспечит ImageGadget()
Пример
If OpenWindow(0, 0, 0, 220, 100, "Пример...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ButtonGadget(1, 10, 60, 200, 30, "Рисовать в окне") Repeat Event = WaitWindowEvent() Select Event Case #PB_Event_Gadget Select EventGadget() Case 1 ;Нарисует красную рамку в окне If StartDrawing(WindowOutput(0)) Box(10, 10, 200, 30, RGB(255, 0, 0)) StopDrawing() EndIf EndSelect EndSelect Until Event = #PB_Event_CloseWindow EndIf
См. также
StartDrawing(), WindowVectorOutput()
Поддерживаемые OS
Все