Enable \ Disable Image StatusBar on the Fly[Windows]

Share your advanced PureBasic knowledge/code with the community.
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4664
Joined: Sun Apr 12, 2009 6:27 am

Enable \ Disable Image StatusBar on the Fly[Windows]

Post by RASHAD »

Hi all
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
Egypt my love
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5357
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: Enable \ Disable Image StatusBar on the Fly[Windows]

Post by Kwai chang caine »

Works great here :wink:
Thanks for sharing 8)
ImageThe happiness is a road...
Not a destination
Post Reply