PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows Programmierung


denyo83
2005-12-11, 21:19:42
Sitze hier an einer Aufgabe für ein Labor-Testat und habe ein kleines Problem.
Die Aufgabe ist, ein kleines Zeichenprogramm zu programmieren, welches eine Linie zeichnen kann. Der Startpunkt der Linie soll durch drücken der Linie festgelegt werden, und der Endpunkt durch loslassen. Mein Problem ist das schon aus der WM_LBUTTONDOWN die WM_PAINT aufgerufen wird. Also zeichnet er schon, bevor er soll. Wie kann ich das verhindern? Ist bisschen schwer zu beschreiben, deswegen hier nochmal der Link zur Aufgabenstellung:

http://www.fh-giessen.de/~hg6661/download/scripte/Uebungsaufgaben.pdf

Wäre cool, wenn mir jemand helfen könnte.

Trap
2005-12-11, 21:28:45
Ich seh da keinen Beispielcode und deinen Code hast du auch nicht geposted, wie soll ich da irgendwas antworten?

Matrix316
2005-12-11, 22:46:08
:biggrin: Haha ;D *räusper*

Tipp: Man könnte zum Beispiel einen Array machen in dem man die Punkte die man anklickt abspeichert und dann macht man eine Abfrage ob was im Array steht und wenn ja, zeichnet man die Punkte im Array. Bei zwei Klicks sinds zwei Punkte, bei drei Klicks sinds 3 Punkte die dann verbunden und gezeichnet werden können. Etc. :rolleyes:

Juerg
2005-12-12, 15:35:52
Sitze hier an einer Aufgabe für ein Labor-Testat und habe ein kleines Problem.
Die Aufgabe ist, ein kleines Zeichenprogramm zu programmieren, welches eine Linie zeichnen kann. Der Startpunkt der Linie soll durch drücken der Linie festgelegt werden, und der Endpunkt durch loslassen. Mein Problem ist das schon aus der WM_LBUTTONDOWN die WM_PAINT aufgerufen wird. Also zeichnet er schon, bevor er soll. Wie kann ich das verhindern? Ist bisschen schwer zu beschreiben, deswegen hier nochmal der Link zur Aufgabenstellung:

http://www.fh-giessen.de/~hg6661/download/scripte/Uebungsaufgaben.pdf

Wäre cool, wenn mir jemand helfen könnte.So ein kurzer Hack ausser Deiner Beschreibung wäre:

Setze ein Flag bei WM_LBUTTONDOWN und speichere OldPoint.
Beim WM_LBUTTONUP zeichne Linie zwischen NewPoint (wo Du jetzt bist) und OldPoint. Wenn nötig (wenn nicht auto) rufe WM_PAINT...
NewPoint wird jetzt zu OldPoint usw...