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