Zeichnen mit mouse_down event?

Aj2010

Mitglied
Hi. Mein Thredname drückt meine frage bereits aus. Und zwar, ich muss jetzt meine PictureBox bearbeiten können. Das ist schwieriger als ich erwartet hätte. Und zwar hab ich nun folgendes Problem, wie ich meine Maus-Koordinaten raus lese weiß ich, Ich weiß auch wie ich dann die entsprechenden Pixel änder. Ich hab jetzt aber das Problem, dass das Event ja nicht dauerhaft ist. Also das Mouse_down event. Ich hab mir überlegt, das ganze mit einer while schleife zu machen. Ich wüsste aber beim besten willen nicht, was ich als Wahrheitswert nehmen lönnte, da das event ja auch nur einmal ausgelöst wird. es soll aber ständig ausgelöst werden, solange die maus gedrückt wird. hoffe auf schnelle rückmeldung...


danke =)
 

Nico Graichen

Erfahrenes Mitglied
Hi

Dann schau dir doch mal das MouseMove-Event an! ;)

Eine kleine Bitte noch: Versuch doch zwischendurch mal die Enter-Taste zu nutzen. Absätze und Zeilenumbrüche helfen bei der Lesbarkeit! Danke! :)
 

ComFreek

Mod | @comfreek
Moderator
Ich bin nicht aus dem .NET-Bereich, aber bei meinen Programmen ist im Prinzip ein MouseUp-Event die Bedingung. Sowas müsste es bestimmt auch in .NET geben.

Ich habe eine Variable, die auf true geschaltet wird, wenn das Event MouseDown eintritt und sobald das MouseUp-Event auftritt wird diese wieder auf false geschaltet.
Nun solange die Variable wahr ist, lasse ich mein Programm beim MouseMove-Event zeichnen.
 

Aj2010

Mitglied
Entschuldige bitte Nico.

Ja, so in etwa war mein gedanke auch. Hab auch überlegt, das über das mouse_down und Up event zu machen. mir ist nur nicht der zwischenschritt mit einer weiteren Methode eingefallen.

Die Idee mit dem Mouse-Move Event Hatte ich auch schon, wobei ich dann nicht wüsste, wie ich beide Events miteinander verbinden müsste, da es später auf nem Tablett PC laufen wird. Und da ist bei Stifteingabe automatisch mouse_down angesagt ^^
 

Aj2010

Mitglied
Da wäre noch eine weitere Frage. Wird das nicht ne hohe systemauslastung zur folge haben, wenn ich jetzt einfach ne dauerschleife einbaue, die von mouseevents abhängig gemacht wird?

dann wäre noch ne andere sache. Wie bekomm ich die Koordinaten dauerhaft geliefert. weil es muss ja nur neu gezeichnet werden, wenn sich die maus(in dem fall dann der stift) bewegt und gleichzeitig gedrückt wird... (oder der stift eben den bildschirm berührt) da ist dann das Nächste hindernis ^^
 
Zuletzt bearbeitet:

Aj2010

Mitglied
Hab da eine eventuelle lösung. was sagt ihr dazu? is nen halb pseudocode

mouse_down /gedrückt = true;
mouse_move / if (gedrückt = ture) übergebe xy koords und speicher / male;
mouse_up / gedrückt = false;

was sagt ihr dazu?
 

Aj2010

Mitglied
Das Tut ist ja ganz gut. Problem ist nur, es ist für C#. Nicht für C++. Ich habs jetzt soweit umgebaut, dass es C++ fähig ist, aber

using (Graphics g = Graphics->FromImage(img))

ist nen fehler bei '(' :

c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(497): error C2059: Syntaxfehler: '('

gibt es überhaupt SO eine Using direktive?
 

Aj2010

Mitglied
wat? ^^ Ich erklär mal eben meine Situation ^^ Ich arbeite jetzt seit etwa 1,5 monaten mit c++ .net also CLI. Ich bin in ner Umschulung und hab vorher 3 monate nur mit c# gearbeitet und davor java php etc... mehr nicht. ^^