Mausposition im Aktuellen Fenster ermitteln

Der nette Mann

Erfahrenes Mitglied
Hallo,

ich möchte die aktuelle Mausposition in dem Hauptfenster meines Programms ermitteln, da ich die Angabe benötige um eine Linie zu zeichnen. Wie kann man das hinbekommen, dass die Line auch genau an der Position, an der sich die Maus befindet endet?

Danke

Der nette Mann
 
Das geht sehr gut mit BOOL GetCursorPos( LPPOINT lpPoint );
Da du MFC verwendest, kannst du es auch mit einem CPoint zusammen benutzen.
 
Hab das jetzt mit dem GetCursorPos gemacht. Hab allerdings keine CPOINT und keinen LPPOINT verwendet sondern einen POINT.

Wenn ich nun aber meine Line zeichnen will, dann wird die Linie leider paralell zur x Achse nach unten verschoben. Kann das an dem POINT liegen. Oder hab ich was in meiner Berechnung nicht berücksichtigt

Danke

Der nette Mann
 
Ok, ohne Code geht's schlecht ;)

hier:

Code:
POINT p;
GetCursorPos(&p);

x2 = p.x;
y1 = p.y;

Graphics* g = panel1->CreateGraphics();
Pen* myPen = new Pen(Color::Black);
myPen->Width = 2;

g->DrawLine(myPen, x1, y1, x2, y2);

x1 und y1 werden bei einem MouseDown Ereignis analog zu oben initialisiert. Der obige Code bezieht sich auf das MousUp Ereignis.

Danke

Der nette Mann
 
Sollte das da nicht y2 = .. sein?


(sinnloser rant: Die meisten Fehler kommen durch Copy/Paste rein bzw. werden dadurch einfach und unkompliziert vervielfältigt)
 
Endurion hat gesagt.:
Sollte das da nicht y2 = .. sein?
Sehe ich auch so.

Endurion hat gesagt.:
(sinnloser rant: Die meisten Fehler kommen durch Copy/Paste rein bzw. werden dadurch einfach und unkompliziert vervielfältigt)
Weswegen es sich auch eigentlich immer lohnt, eine neue Funktion zu schreiben und diese mehrmals aufzurufen, anstatt Code direkt zu kopieren.
 
Der nette Mann hat gesagt.:
Code:
x2 = p.x;
y1 = p.y;

War ein Tippfehler, hab's aber mit dem MouseEvent hinbekommen, damit bekomme ich die Koordinaten auch:
e->getX(); bzw e->getY();

So bekomme ich die Linie auch genau dort, wo ich sie haben möchte.

Danke nochmals

Der nette Mann
 
Zurück