gjrbyek ajhev
Отредактировано Webarion (13.06.2025 14:09:57)
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Избавиться от мерцания CanvasGadget, при ResizeGadget
gjrbyek ajhev
Отредактировано Webarion (13.06.2025 14:09:57)
Enumeration Windows
#Window1
EndEnumeration
Enumeration Gadgets
#Canvas1
EndEnumeration
Procedure _Draw()
If StartDrawing( CanvasOutput(#Canvas1) )
Protected.u W = OutputWidth(), H = OutputHeight()
For i =0 To 7
Box( i*20, i*20, W-(i*40), H-(i*40), RGB( 255-(i*20), 200-(i*20), 170-(i*17) ) )
Next
StopDrawing()
EndIf
EndProcedure
Procedure CanvasEvent()
If EventType() = #PB_EventType_Resize
_Draw()
EndIf
EndProcedure
Procedure _Event()
ResizeGadget( #Canvas1, 10, 10, WindowWidth(#Window1)-20 , WindowHeight(#Window1)-20 )
EndProcedure
If OpenWindow( #Window1, 0, 0, 500, 300, "ТЕСТ (ИЗМЕНЯЙТЕ РАЗМЕР ОКНА С ПОМОЩЬЮ МЫШИ)", #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget )
SmartWindowRefresh(#Window1, #True)
SetWindowColor( #Window1, $AAB220 )
CanvasGadget( #Canvas1, 10, 10, WindowWidth(#Window1)-20 , WindowHeight(#Window1)-20 )
_Draw()
BindEvent( #PB_Event_SizeWindow , @_Event(), #Window1 )
BindGadgetEvent(#Canvas1, @CanvasEvent())
Repeat
Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
EndIfвполне можно было работать по отсечениям изменённых размеров (когда не стираются незатронутые области).
В предыдущих версиях так и было.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Избавиться от мерцания CanvasGadget, при ResizeGadget