Umrandung zeichnen



  • Hallo,
    bei meinem lernen in C++ Net
    wollte ic z.B. um ListBoxen eine Umrandung zeichnen mit folgendem Code:

    private: System::Void Form1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) 
     {
    	 Graphics^ g = e->Graphics;
    	 for each(Control^ c in this->Controls)
    	 { 	 
    		 if (c->GetType() == Type::GetType("ListBox"))
    		 {
    			 //g->DrawRectangle(gcnew Pen(Color::Black,3),gcnew Rectangle( c->Size,c->Location));
    		 }
    	 }
     }
    

    in der auskommentierten Zeile bekomme ich die Fehlermeldung, weil schon Size nicht umgerechnet werden
    kann.
    Jetzt war ich der Meinung, dass Size die beiden Werte angibt;in C# geht es.
    wie muss man das in C++ Net machen. Wo ist mein Anfängerfehler ?
    Kann mir jemand einen Tipp geben,dass der Code lauffähig werden kann.
    Grüße
    Ludwig



  • Hallo,
    hat keiner eine Idee ?
    Grüße
    Ludwig



  • Wie wärs denn mit ner Fehlermeldung ?
    Ein blick in die MSDN könnte auch nicht schaden:

    gcnew Rectangle( c->Size,c->Location));
    
    public:
    Rectangle (
    	Point location, 
    	Size size
    )
    
    [LocalizableAttribute(true)] 
    public:
    property Point Location {
    	Point get ();
    	void set (Point value);
    }
    
    [LocalizableAttribute(true)] 
    public:
    property Size Size {
    	Size get ();
    	void set (Size value);
    }
    

    (Da ich nicht glaube, das Du an soetwas simplen scheiterst - erkläre das Problem neu)



  • Hallo,
    danke für Deine Antwort.

    Die Fehlermeldung schiebe ich gerne nach.

    c:\dokumente und einstellungen\administrator\eigene dateien\c++\c++textinlistbox\c++textinlistbox\Form1.h(328) : error C2664:
    'void System::Drawing::Graphics::DrawRectangle(System::Drawing::Pen ^,System::Drawing::Rectangle)':
    Konvertierung des Parameters 2 von 'System::Drawing::Rectangle ^' in 'System::Drawing::Rectangle' nicht möglich
    Es ist kein benutzerdefinierter Konvertierungsoperator verfügbar, oder
    Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator
    kann nicht aufgerufen werden

    schlau werde ich einfach nicht.
    Nach meinem Verständnis sind alle werte in size und location gegeben.
    Mit dem Umwandeln habe ich mich auch jetzt wieder in der Doku auf Suche gemacht - OHNE ERFOLG -.
    Kannst Du mir sagen,wie ich den 2. Parameter schreiben muss.

    Grüße
    Ludwig



  • Luko schrieb:

    error C2664:
    'void System::Drawing::Graphics::DrawRectangle(System::Drawing::Pen ^,System::Drawing::Rectangle)':
    Konvertierung des Parameters 2 von 'System::Drawing::Rectangle ^' in 'System::Drawing::Rectangle' nicht möglich

    Dann mach einfach aus deiner

    Rectangle ^rect;
    

    ein

    Rectangle rect;
    


  • Falls du weiterhin noch Fehler hast, benutze statt Size System::Drawing::Size!
    In der Regel nimmt der Compiler sonst die Size Eigenschaft aus dem Namensraum System::Windows::Forms


Anmelden zum Antworten