Working with some code from elsewhere on the forum, RedrawWindow_ has solved the resize flickering. But I can't figure out how to stop the flickering when the splitter is moved.
Code: Select all
Enumeration
#Main
EndEnumeration
Enumeration
#Main_Web
#Main_Combo
#Main_List
#Main_Container
#Main_Splitter
EndEnumeration
Global OldContainerWndProc
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_SIZE
ResizeGadget(#Main_Splitter,#PB_Ignore,#PB_Ignore,WindowWidth(#Main)-10,WindowHeight(#Main)-10)
ResizeGadget(#Main_Combo,#PB_Ignore,#PB_Ignore,GadgetWidth(#Main_Container),#PB_Ignore)
ResizeGadget(#Main_List,#PB_Ignore,#PB_Ignore,GadgetWidth(#Main_Container),GadgetHeight(#Main_Container)-25)
RedrawWindow_(WindowID(#Main),0,0,#RDW_UPDATENOW)
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Procedure ContainerCallback(hWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_SIZE
Debug 1
EndSelect
Result=CallFunctionFast(OldContainerWndProc, hWnd, uMsg, wParam, lParam)
ProcedureReturn Result
EndProcedure
If OpenWindow(#Main,#False,#False,420,235,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget) And CreateGadgetList(WindowID(#Main))
SmartWindowRefresh(#Main,#True)
WebGadget(#Main_Web,0,0,0,0,"")
ContainerGadget(#Main_Container,0,0,0,0)
ComboBoxGadget(#Main_Combo,0,0,160,200)
ListIconGadget(#Main_List,0,25,160,200,"Test",70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_HeaderDragDrop)
AddGadgetColumn(#Main_List,1,"Test2",160)
AddGadgetColumn(#Main_List,2,"Test3",60)
For i=0 To 100
AddGadgetItem(#Main_List,-1,"HelloHello"+#LF$+"HelloHelloHelloHello"+#LF$+"Hello")
Next
CloseGadgetList()
SplitterGadget(#Main_Splitter,5,5,410,225,#Main_Web,#Main_Container,#PB_Splitter_Vertical|#PB_Splitter_Separator)
ResizeGadget(#Main_Splitter,#PB_Ignore,#PB_Ignore,WindowWidth(#Main)-10,WindowHeight(#Main)-10)
ResizeGadget(#Main_Combo,#PB_Ignore,#PB_Ignore,GadgetWidth(#Main_Container),#PB_Ignore)
ResizeGadget(#Main_List,#PB_Ignore,#PB_Ignore,GadgetWidth(#Main_Container),GadgetHeight(#Main_Container)-25)
Else
MessageRequester("Warning!","Error opening window!",#MB_ICONWARNING)
End
EndIf
hWnd=GadgetID(#Main_Container)
SetWindowLong_(hWnd,#GWL_STYLE,GetWindowLong_(hWnd,#GWL_STYLE)|#WS_CLIPCHILDREN)
SetWindowCallback(@WinCallback(),#Main)
OldContainerWndProc=SetWindowLong_(GadgetID(#Main_Container),#GWL_WNDPROC,@ContainerCallback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver