Again , thx's for taking an interest to this. Here's what I've come up with. This limits the flicker to the tabs.
' createtabber.bmx Strict Import maxgui.win32maxguiex Extern "win32" Function GetSysColor(hWndChild:Int) End Extern Const COLOR_3DFACE:Int = 15 Const COLOR_MENU:Int = 4 Local window:TGadget Local tabber:TGadget Local document:TGadget[3] Local currentdocument:TGadget ' CreateDocument creates a hidden panel that fills entire tabber client area Function CreateDocument:TGadget(tabber:TGadget) Local panel:TGadget panel=CreatePanel(0,0,ClientWidth(tabber),ClientHeight(tabber),tabber) SetGadgetLayout panel,1,1,1,1 HideGadget panel Return panel End Function ' create a default window with a tabber gadget that fills entire client area window=CreateWindow("My Window",30,20,400,300) tabber=CreateTabber(0,0,ClientWidth(window),ClientHeight(window),window) SetGadgetLayout tabber,1,1,1,1 ' add three items and corresponding document panels to the tabber AddGadgetItem tabber,"Document 0",False,-1,"" AddGadgetItem tabber,"Document 1",False,-1,"Tabber Tip 1" AddGadgetItem tabber,"Document 2",False,-1,"tips 4 2" document[0]=CreateDocument(tabber) document[1]=CreateDocument(tabber) document[2]=CreateDocument(tabber) Local syscol:Int = GetSysColor(COLOR_MENU) Local b = (syscol Shr 16 ) & $FF Local g = (syscol Shr 8 ) & $FF Local r = syscol & $FF SetPanelColor document[0],r,g,b SetPanelColor document[1],r,g,b SetPanelColor document[2],r,g,b ' our documents start off hidden so make first one current and show currentdocument=document[0] ShowGadget currentdocument ' standard message loop with special tabber GADGET_ACTION handling While WaitEvent() Select EventID() Case EVENT_GADGETACTION If EventSource()=tabber HideGadget currentdocument currentdocument=document[EventData()] ShowGadget currentdocument EndIf Case EVENT_WINDOWCLOSE End End Select Wend