It is workaround after all
Code: Select all
Global Enflag
Procedure WndProc(hwnd, uMsg, wParam, lParam)
result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_NCACTIVATE
Result = 1
Case #WM_SIZE,#WM_MOVE
If Enflag = 1
ResizeWindow(1,WindowX(0,#PB_Window_InnerCoordinate), WindowY(0,#PB_Window_InnerCoordinate)+WindowHeight(0, #PB_Window_InnerCoordinate)-40,WindowWidth(0,#PB_Window_InnerCoordinate),40)
Else
ResizeWindow(1,0,0,0,0)
EndIf
ResizeGadget(0,10,WindowHeight(0, #PB_Window_InnerCoordinate)-80,80,30)
EndSelect
ProcedureReturn result
EndProcedure
LoadImage(0,#PB_Compiler_Home+"Examples\Sources\Data\CdPlayer.ico")
If OpenWindow(0, 0, 0, 600, 400, "PureBasic - StatusBar Example", #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget)
ButtonGadget(0,10,320,80,30,"En\Dis")
If CreateStatusBar(1,WindowID(Window_0))
SendMessage_(StatusBarID(1), #SB_SETMINHEIGHT, 40, 0)
SendMessage_(StatusBarID(1), #WM_SIZE, 0,0)
AddStatusBarField(40)
AddStatusBarField(40)
AddStatusBarField(40)
AddStatusBarField(40)
AddStatusBarField(#PB_Ignore)
EndIf
StatusBarImage(1, 0, ImageID(0), #PB_StatusBar_Center)
StatusBarImage(1, 1, ImageID(0), #PB_StatusBar_Center)
StatusBarImage(1, 2, ImageID(0), #PB_StatusBar_Center)
StatusBarImage(1, 3, ImageID(0), #PB_StatusBar_Center)
OpenWindow(1,0,0,0,0,"",#PB_Window_BorderLess, WindowID(0))
SetWindowLongPtr_(WindowID(1), #GWL_EXSTYLE, #WS_EX_LAYERED )
SetLayeredWindowAttributes_(WindowID(1),0 , 200, #LWA_ALPHA)
SetActiveWindow(0)
SetWindowCallback(@WndProc())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 0
En ! 1
If En = 1
Enflag = 1
ResizeWindow(1,WindowX(0,#PB_Window_InnerCoordinate), WindowY(0,#PB_Window_InnerCoordinate)+WindowHeight(0, #PB_Window_InnerCoordinate)-40,WindowWidth(0,#PB_Window_InnerCoordinate),40)
Else
Enflag = 0
ResizeWindow(1,0,0,0,0)
EndIf
EndSelect
EndSelect
Until Quit = 1
EndIf