PB-ID des Parentwindow finden?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

PB-ID des Parentwindow finden?

Beitrag von Franky »

Hi Leute,
ich schreib grad an ner Art "dynamischer Gadgetklasse" und hab da ein kleines Problem.
Für richtige Abfragen (z.B. der Mausposition innerhalb des Gadgets) würde ich gern die PB-ID des ParentWindows meines Gadgets finden, und zwar durch eine Abfrage innerhalb meiner Include-Datei (Manuelle Übergabe finde ich irgendwie unsauber).
Nun gibt es ja GetActiveWindow(), was in 99% aller Fälle auch funktionieren sollte. In 1% kann es aber Passieren, dass
zwischendurch schon ein anderes Fenster aktiviert wurde (das Problem fiel mir beim Debuggen auf, da ich zwischenzeitlich die IDE aktiviert hatte.

Daher die Frage: Gibt es eine Möglichkeit, die "#Window" (wie man´s laut Hilfe nennt ;)) des ParentWindows eines Gadgets zu finden?

Danke und Mfg der Franky
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: PB-ID des Parentwindow finden?

Beitrag von ts-soft »

Code: Alles auswählen

Procedure GetGadgetParent()
  !EXTRN _PB_Object_GetThreadMemory@4
  !EXTRN _PB_Gadget_Globals
  !MOV   Eax,[_PB_Gadget_Globals]
  !push  eax
  !call  _PB_Object_GetThreadMemory@4
  !MOV   Eax,[Eax]
  ProcedureReturn
EndProcedure 
oder die Funktionen importieren

Das ist das handle, die PB-ID steht in den Properties (GetProp_(hwnd, "PB_ID")

Bin noch auf Arbeits, kann jetzt nicht testen, falls Du nicht klar kommst sag "BScheid", dann melde
ich mich heute Abend noch mal.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: PB-ID des Parentwindow finden?

Beitrag von edel »

Die Funktion brauchst du gar nicht mehr (is eh scheisse). Einfach UseGadgetList mit 0 aufrufen.

Code: Alles auswählen

hWnd = UseGadgetList(0)
Ueber die PBID wuerde ich nochmal nachdenken, es gibt auch Parent-Fenster ohne diese ID.
Das ist das handle, die PB-ID steht in den Properties (GetProp_(hwnd, "PB_ID")
Funktioniert aber auch nur dann, wenn das Parent-Fenster ein Gadget ist.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: PB-ID des Parentwindow finden?

Beitrag von mk-soft »

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten