(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: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
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 , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
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: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
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 , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Antworten