Mal was ganz Neues: Ich mache was mit C#.
Ich würde gern eine kleine Desktopanwendung mit Windows Forms schreiben (beziehungsweise: bin schon recht weit gekommen), die auf der MDI-Technik basiert. (Hintergrund: Es wird eine Art Texteditor mit frei schwebenden Fenstern. SDI und 'ne Tableiste wären da kontraproduktiv.) Während das Auf- und Zumachen von Clientfenstern kein großes Problem darstellt, wofür ich C# einfach mal loben möchte - mein erster Entwurf in Delphi hat mehr Code für den gleichen Effekt gebraucht, vielleicht bin ich aber auch einfach nur kacke in Delphi -, stellt mich ein technisch eigentlich gar nicht relevantes Thema noch vor ein Rätsel:
Ich wäre gern in der Lage, im Clientbereich des MDI-Fensters mit der Maus ein Rechteck zu malen. Also:
Quelltext
1: 2: 3: 4: 5: 6:
| +----[ Titelleiste ]--------------------[_][X] +--------------------------------------------+ | | | [ Clientbereich ] | | | +--------------------------------------------+ |
Bei Rechtsklick setze ich X, Y und "isDragging". So lange "isDragging" == true, soll bei jeder Mausbewegung ein Rechteck gemalt werden. Ich möchte also sozusagen das mit der Maus "aufgezogene" Rechteck visualisieren.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| { if (isDragging) { iTargetX = e.X; iTargetY = e.Y;
} } |
Vermutlich muss ich irgendwas mit einem CPen machen, aber wie kriege ich das so hin, dass das nicht stehen bleibt, sondern mit jedem MouseMove neu gezeichnet wird?