Per Buttonclick auf Imagebox zeichnen



  • Hallo, ich bin völlig neu auf diesem Gebiet also bitte nicht zu streng mit mir sein.

    Ich hab eine Funktion:

    public:   void DrawStringRectangleF( PaintEventArgs^ e )
       {
    	   Point get_MousePosition();				
    	   int x,y;
    	   y = Control::MousePosition.Y;
    	   x = Control::MousePosition.X;
    	   e->Graphics->Clear(Color::White);
    
               e->Graphics->DrawString( "This is a diagonal line drawn on the control",
             gcnew System::Drawing::Font( "Arial",10 ), System::Drawing::Brushes::Blue, Point(x,y) );
     }
    

    Jetzt würde ich diese Funktion gerne mit einem ButtonClick (noch besser wäre ein ImageBoxClick) aufrufen... Die Funktion braucht aber ein PaintEventArgs und ich habe keine Ahnung wie ich das von einem Click an die Funktion übergeben kann... könnt ihr mir bitte helfen? 😞



  • schaue den Satz an

    Fragen zu .net oder WinForms gehören ins C++/CLI mit .NET Forum.

    Also lass es verschieben, dort bekommst du sicher eine Antwort auf deine und zukünftige Fragen



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Jetzt würde ich diese Funktion gerne mit einem ButtonClick (noch besser wäre ein ImageBoxClick) aufrufen...

    Warum? Erkläre was Du machen möchtest (nicht wie Du denkst, dass Du dein Ziel erreichen kannst).



  • Hallo Invisible,

    Zeichnen solltest du nur im Paint-Ereignis (bzw. in der überschriebenen OnPaint-Methode). Und dort hast du dann auch das PaintEventArg als Parameter.
    Um das betreffende Control dann zu aktualisieren, einfach im Button-Click dann control->Invalidate() aufrufen.

    Da du jedoch nicht von Anfang an zeichnen willst, solltest du eine (boolsche) Membervariable dafür definieren und entsprechend in der Paint-Methode abfragen.

    Eine generelle Vorgehensweise zum Zeichnen in .NET gibt es im Artikel [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox) (allerdings mit Code-Beispielen in C# -)

    Ich hoffe du hast auch den Beitrag von Jochen schon gelesen: [url=http://www.c-plusplus.net/forum/263084]Windows Forms und Visual C++ MACHT KEINEN SINN!
    [/url] ...



  • Hallo, erstmal danke für eure schnellen Antworten!

    Die Aufgabe:
    Es geht um ein Spielfeld, das ungefähr so wie Sudoku ist, nennt sich aber Str8ts.
    Um das in einem Gui zu entwerfen, wäre ne Tabelle sinnvoll (die es aber scheinbar nicht gibt -.-) oder halt mit Grafiken zu arbeiten. Da es 9x9 Felder gibt werd ich sicher nicht so viele Textboxen erstellen 😉

    Ich hätte mir dann über den Mausclick auf die Imagebox die Position ausgeben lassen und dann dort den String zeichnen lassen..
    Nur leider passen Mausclick und PaintEventArgs nicht zusammen 😕

    Der genaue Ablauf soll so sein, man klickt irgendwo auf die Grafik, dann öffnet sich dort eine Textbox wo man halt den String eingeben kann und dieser wird dann an die Position gezeichnet..

    Zumindestens hab ich mir das so gedacht...

    Sagen wir so, es war nicht meine freie Entscheidung das mit Visual Studio zu machen ^^'



  • Registriere Dich beim Maus-Klick auf das Paint-Ereigniss und zeichen dort. Rufe dazu einfach Invalidate auf.


Log in to reply