Position eines Bildes ermitteln

Gast #425799
Hallo zusammen,

ich bin gerade dabei ein PC-Programm in C++ zu schreiben. Ich verwende 
Visual C++ 2003 und arbeite in mit den MFC Dialogfeldern.

Ich möchte in meinen Hauptdialogfenster Werte über eine graphische 9 
stellige 7-Segment-Anzeige darstellen. Dazu erzeuge ich mir mit dem 
"Picture Control" aus der Toolbox ein Feld, dem ich dann eine Bitmap 
zuweise.

Durch anklicken einer der neun Ziffern, soll sich die Bitmap ändern z.B 
Bild mit linker Maustaste gedrückt -> Wert der Ziffer +1, rechte 
Maustaste -> Wert der Ziffer -1. Ich denke mal das Prinzip ist klar.

Das Austauschen der Bilder ist kein Problem, jedoch das ermitteln der 
Bildposition. Die Methode OnLButtonDown liefert mir ja die Position der 
Maus, wo die linke Taste gedrückt worden ist. Doch diese Position muss 
noch mit den Positionen der Bilder vergleichen werden, um zu erkennen 
welche Ziffer angeklickt wurde.

Wie kann ich die Position eines Bildes in einem Dialogfenster ermitteln? 
Gibt es da eine Methode die mir das gewünschte liefert?

Gruß und Freude
Thomas
Gast
@Olaf

Verstehe ich es richtig, das die Methoden eine Konvertierung der 
Position machen.

Z.B die Maus befindet sich an Position (30,55) und zwar von der linken 
oberen Ecke des Fensters aus gesehen. Dann konvertiert mir die Methode 
ClientToScreen diesen Punkt in die Position, die von der linken oberen 
Ecke des Monitors (Screen) entfernt ist.

Thomas
Ganz genau.
Und mit der Umkehrung davon, ScreenToClient, angewendet vom
Picture Control aus, lässt du dir die Position in Bezug
auf das Picture Control ausrechnen.
Damit hast du Koordinaten, deren 0-Punkt in der linken oberen
Ecke des Picture Controls liegt.
Wies jetzt weiter geht, denke ich, weist du schon.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.