# Maus-Koordinaten abrufen, Anfänger in Events



## Lanjan (10. Januar 2007)

Hiho erstmal, 

ich dachte ich hätte schon ein Thema eröffnet, aber scheinbar ging das verloren, daher ein erneuter Post. Biite nich böse sein, wenns nun doippelt hier drinn steht.

Also es geht darum, wir müssen mit ANSI-C ein Programm schreiben wo in einem Fenster ein Roboter-Arm sachen verschiebt. Nun wollen wir im Fenster die MausKoordinaten abfragen wenn der User die Maus klickt.

Das ganze sieht etwa so aus: 

```
POINT p;
double mausx, mausy=0;
MouseClick("left");
GetCursorPos(&p);//Hier werden die Maus-Kooridnaten abgefragt
mausx=p.x;
mausy=p.y;
printf("MausKoordinaten: x:%lf y:%lf", mausx, mausy);
```

nun erhalte ich folgenden Fehler "undefined reference to _WM_MouseClick"
was mache ich falsch ? Könnte jemand ein kleines Beispielprogramm hier posten wie man die Koordinaten von der Maus bei Mausklick einer Variablen zu weist? Welche Header-Datei brauche ich, für die Funktion "MouseClick" ?

Viele Fragen und ich danke jetzt schon mal für eure Hilfe.


----------



## Lanjan (11. Januar 2007)

Gibt es denn niemand, der mir weiterhelfen kann?

Vielleicht hilft euch noch die Info, dass ich mit "lcc" arbeite oder das Schlagwort WinAPI. Wie schon gesagt bin blutiger Anfänger in solchen Geschichten, bisher liefen meine Programme in DOS-Boxen und mit 80x25 Zeichen.

Evtl. gibt diese MouseClick funktion ja gar nicht oder heisst komplett anders...hilfe


----------



## jokey2 (11. Januar 2007)

Nun, ich kenne die MouseClick-Funktion jedenfalls nicht uind habe sie auch nirgendwo in der MSDN gefunden. Was willst du denn damit bezwecken?
Und woher kommt _WM_MouseClick? Das WM hört sich immer nach Windows-Message an, aber die müßtest Du ja dann irgendwo deklariert haben.

Im Normalfall sendet Windows eine Nachricht an die Applikation, wenn z.B. eine Maustaste gedrückt wurde. Diese Nachricht mußt Du in der Message-Loop abfangen und auswerten.

Mit einer Konsolenapplikation wird das also wohl nicht funktionieren. Du mußt eine Windows-Applikation mit MessageLoop schreiben (_LRESULT CALLBACK WndProc(HWNDhWnd, UINT message, WPARAM, wParam, LPARAM lParam)_).

In dieser Funktion mußt Du dann z.B. die WM_LBUTTONDOWN-Nachricht abfangen. Dort kannst Du dann mit GetMessagePos die Mausposition zum Zeipunkt des Klicks abfragen.


----------



## Lanjan (11. Januar 2007)

Danke für den Tipp, du hast sicherlich recht. Ich dachte es gäbe da ne nette Funktion wie "getch()" nur halt für die Maus.
Doch heute habe ich folgende Seite gefunden, die sehr vielversprechend aussieht.

http://www.win-api.de/tutorials.php?tutid=10

danke nochmal


----------



## jokey2 (11. Januar 2007)

Exakt das isses! Wer sagt denn, daß suchen nicht lohnt?


----------



## Lanjan (11. Januar 2007)

hab ja gesucht, nur eben nach  dem falschen (MouseClick)


----------

