Code: Select all
Global hinstance = GetModuleHandle_(#Null)
Global OldProc = #Null
Procedure Tab_CB(hWnd, uMsg, wparam, lparam)
Protected ps.PAINTSTRUCT
Select uMsg
Case #WM_ERASEBKGND
ProcedureReturn 1
Case #WM_PAINT
If wparam
ProcedureReturn CallWindowProc_(OldProc, hWnd, uMsg, wparam, lparam)
EndIf
hdc = BeginPaint_(hWnd, ps)
memDC = CreateCompatibleDC_(hdc)
hBMP = CreateCompatibleBitmap_(hdc, ps\rcPaint\right, ps\rcPaint\bottom)
hOldBMP = SelectObject_(memDC, hBMP)
CallWindowProc_(OldProc, hWnd, #WM_ERASEBKGND, memDC, 0)
CallWindowProc_(OldProc, hWnd, #WM_PRINT, memDC, #PRF_CLIENT)
BitBlt_(hdc, ps\rcPaint\left, ps\rcPaint\top, ps\rcPaint\right, ps\rcPaint\bottom, memDC, ps\rcPaint\left, ps\rcPaint\top, #SRCCOPY)
;Cleanup
SelectObject_(memDC, hOldBMP)
DeleteObject_(hBMP)
DeleteDC_(memDC)
EndPaint_(hwin, ps)
ProcedureReturn 0
Default
ProcedureReturn CallWindowProc_(OldProc, hWnd, uMsg, wparam, lparam)
EndSelect
EndProcedure
OpenWindow(0,0,0,640,480,"void",#WS_OVERLAPPEDWINDOW | #WS_CLIPCHILDREN )
hwndPanel = CreateWindowEx_(0,"SysTabControl32",0,#WS_CHILD | #WS_CLIPCHILDREN | #WS_VISIBLE,0,0,0,0,WindowID(0),0,0,0)
OldProc = SetWindowLongPtr_(hwndPanel, #GWLP_WNDPROC, @Tab_CB())
tci.TC_ITEM
tci\mask = #TCIF_TEXT
tci\pszText = @"Tab 1"
a = SendMessage_(hwndPanel,#TCM_INSERTITEM,0,tci)
UseGadgetList(hwndPanel)
ButtonGadget(0, 20, 30, 200, 20, "Standard Button")
tci\pszText = @"Tab 2"
SendMessage_(hwndPanel,#TCM_INSERTITEM,1,tci)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_SizeWindow
MoveWindow_(hwndPanel,10,10,WindowWidth(0)-20,WindowHeight(0)-20,1)
EndIf
Until EventID = #PB_Event_CloseWindow