Basic Univers
;/Constantes Window
Enumeration
  #Window_0
EndEnumeration

;/Constantes Gadget
Enumeration
  #Btn_Quit
  #StatusBar
  #Menu
EndEnumeration

If OpenWindow(#Window_0, 300, 300, 300, 200, #PB_Window_SystemMenu, "Fenêtre 1", 0)
  hWnd = WindowID(#Window_0)
  If CreateGadgetList(WindowID(#Window_0))
    ButtonGadget(#Btn_Quit, 100, 130, 100, 25, "Quitter")
    hMenu = CreateMenu(#Menu, hWnd)
    MenuTitle("Project")
    hStBar = CreateStatusBar(#StatusBar, hWnd)
  EndIf
 
  ;- Dimensions déclarées dans PureBasic
  Debug "Dimensions de la fenêtre fournies à PB"
  Debug "Hauteur = 200"
  Debug "Largeur = 300"
  Debug ""
 
  ;- Encombrement réel de la fenêtre
  Debug "Encombrement réel de la fenêtre"
  GetWindowRect_(hWnd, Win.RECT)
  HautWin.w = Win\bottom - Win\top : Debug "Hauteur = " + Str(HautWin)
  LargWin.w = Win\right - Win\left : Debug "Largeur = " + Str(LargWin)
  Debug""
 
  ;-Zone "Utile" de la fenetre retournée par GetClientRect_()
  Debug "Zone calculée par GetClientRect_()"
  Debug "La fonction retire la hauteur du menu"
  GetClientRect_(hWnd, @lpRect.RECT)
  Haut.w = lpRect\bottom - lpRect\top
  Larg.w = lpRect\right - lpRect\left
  Debug "Hauteur = " + Str(Haut)
  Debug "Largeur = " + Str(Larg)
  Debug ""
 
  ;- Hauteur du menu
  HautMenu = MenuHeight()
  Debug "Hauteur du menu = " + Str(HautMenu)+" (Déjà retiré)"
;
  ;- Hauteur de la barre d'état
  SendMessage_(hStBar, #SB_GETRECT, 0, @Rect.RECT)
  Haut_Bar = Rect\bottom - Rect\top
  Debug "Hauteur de la barre d'état = " + Str(Haut_Bar)
  Debug ""
 
  ;- Dimensions exploitables de la fenêtre, hors menu et barre d'état
  HauteurFenetre = Haut - Haut_Bar
  LargeurFenetre = Larg
  Debug "Dimensions exploitables, (sans le menu et la StatusBar)"
  Debug "Hauteur = " + Str(HauteurFenetre)
  Debug "Largeur = " + Str(LargeurFenetre)
  ;
  Repeat
    Select WaitWindowEvent()
      Case #PB_EventGadget
        Select EventGadgetID()
          Case #Btn_Quit : quit = 1
        EndSelect
      Case #PB_EventCloseWindow : quit = 1
    EndSelect
  Until quit = 1
  End
EndIf