(Erledigt)Position eines nicht Purebasic Fensters ermitteln.

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
tft
Beiträge: 650
Registriert: 08.09.2004 20:18
Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
Wohnort: Dachsen
Kontaktdaten:

(Erledigt)Position eines nicht Purebasic Fensters ermitteln.

Beitrag von tft »

Hallo,

und wider eine Frage zum Thema Fenster und co.

Mit nachfolgender Funktion finde ich ein Fenster und mache einen Copy eines bestimmten Bereichs.

Code: Alles auswählen

Procedure BDO_GET_KARTE()
  
  Static hShotWindow,Timer
  
  Proc$ = "BDO_GET_KARTE"
  
  If BDO = 1
    BDO = 2
    hShotWindow = FindWindow_(0,BDO_Fenster_Name$) 
    If hShotWindow = 0
      Debug( "Fenster Handler BDO not found")
    Else
        
      MakeWinScreenshot(#BDO_Get_Karte_Image1,hShotWindow,400,400,BDO_Karte_X,BDO_Karte_Y)
      StartDrawing(CanvasOutput(#BDO_GET_KARTE_Canvas))
      DrawImage(ImageID(#BDO_Get_Karte_Image1),0,0)
      StopDrawing()
      
    EndIf
  
  ElseIf BDO = 2
    
    If Timer < ElapsedMilliseconds()
      Timer = ElapsedMilliseconds() + 40
      MakeWinScreenshot(#BDO_Get_Karte_Image1,hShotWindow,400,400,BDO_Karte_X,BDO_Karte_Y)
      StartDrawing(CanvasOutput(#BDO_GET_KARTE_Canvas))
        DrawImage(ImageID(#BDO_Get_Karte_Image1),0,0)
      StopDrawing()
    EndIf
    
  EndIf
  
EndProcedure

Das funktioniert super.

Jetzt will ich ein Durchsichtiges Fenster von PureBasic über einer Bestimmten Stelle platzieren.
Die Position x und y des Purbasic Fensters will ich als Positions Angabe benutzen um dann den darunter liegenden teil mit obiger Funktion
auszuschneiden.
Das Fenster von BDO kann überall auf dem Desktop sein. Daher benötige ich über den Handler Zugriff auf die Fensterposition. Um in Relation dazu die
Koordinaten für das Graben zu berechnen.
Der Handler der von FindWindow_(0,BDO_Fenster_Name$) zurück gegeben wird sollte ein Zeiger auf die Window Strucktur sein.
Damit sollte ein Zugriff auf die benötigten Positions Daten möglich sein.
Ich weis aber nicht wie das geht. Und mein Englisch ist zu schlecht um die Beschreibungen im Internet zu verstehen.

Jemand da der sich damit auskennt?

Gruss TFT
Zuletzt geändert von tft am 23.12.2017 15:27, insgesamt 1-mal geändert.
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung

PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler :-)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Position eines nicht Purebasic Fensters ermitteln.

Beitrag von RSBasic »

Mit GetWindowRect_() kannst du sowohl die Größe als auch die Position eines fremden Fensters ermitteln.
Beispiel: http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb

Wenn du englische Sätze übersetzen möchtest: https://www.deepl.com/translator
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
tft
Beiträge: 650
Registriert: 08.09.2004 20:18
Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
Wohnort: Dachsen
Kontaktdaten:

Re: Position eines nicht Purebasic Fensters ermitteln.

Beitrag von tft »

Hallo,

Durch deine Info wurde mir geholfen.

Thx TFT :bounce:
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung

PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler :-)
Antworten