Fensterdaten durch handle abfragen

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
spacewalker
Beiträge: 48
Registriert: 15.07.2005 15:22
Wohnort: Stuttgart

Fensterdaten durch handle abfragen

Beitrag von spacewalker »

Hallo Leute !

Komme grad nicht weiter, vielleicht kann ja jemand weiter helfen...

Wie kann man z.B. Fensterbreite und Fensterhoehe ueber ID abfragen ?

Irgendwie finde ich im Netz nicht wirklich was :(

Code: Alles auswählen

;----------------------------------
Enumeration
   #main
EndEnumeration

Enumeration
   #list
EndEnumeration

Declare GetWindows(win)
Declare GetWindowData(string$)

OpenWindow(#main,1,1,640,480,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"test")
If CreateGadgetList(WindowID())
   ListViewGadget(#list,0,0,640,480)
EndIf
EnumChildWindows_(FindWindowEx_(FindWindow_("Shell_TrayWnd", 0),0,"MSTaskSwWClass", 0),@GetWindows(), 0)
Repeat
   wevent = WaitWindowEvent()
   gevent = EventGadgetID()
   If wevent = #PB_Event_Gadget
      Select gevent
         Case #list
            Select EventType()
               Case #PB_EventType_LeftDoubleClick
                  GetWindowData(GetGadgetItemText(#list,GetGadgetState(#list),0))
            EndSelect
      EndSelect
   EndIf
Until wevent = #PB_Event_CloseWindow 
End

Procedure GetWindows(win)    
  window$ = Space(255)  
  GetWindowText_(win, window$, 255) 
  If window$ And IsWindowVisible_(win) And window$ <> "Program Manager"
   AddGadgetItem(#list,-1,window$) 
  EndIf  
  ProcedureReturn #True 
EndProcedure

Procedure GetWindowData(string$)
   handle = FindWindow_(0,string$)
   ShowWindow_(handle,#SW_RESTORE)   
   
EndProcedure
;----------------------------------------
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Welche ID? Das Handle oder die PureBasic Fensternummer?

Code: Alles auswählen

Procedure WindowWidth_(handle)
  GetWindowRect_(handle, @rc.RECT)
  ProcedureReturn rc\right-rc\left
EndProcedure

Procedure WindowHeight_(handle)
  GetWindowRect_(handle, @rc.RECT)
  ProcedureReturn rc\bottom-rc\top
EndProcedure
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
spacewalker
Beiträge: 48
Registriert: 15.07.2005 15:22
Wohnort: Stuttgart

Beitrag von spacewalker »

Hat genau gepasst, danke !
:allright:
Antworten