dereferenzieren eines managed obeject



  • wie leicht zu erraten liefert mir getZoomFrame einen handle auf ein System::Drawing::Rectangle.

    System::Drawing::Rectangle ^Diagramm::getZoomFrame(int x, int y){
    
    		....
    
    		return zoomFrame;
    };
    

    Dieses will ich jetzt in meinen GraphicPath zeichen, aber AddRectangle nimmt kein handle, sondern nur Object (warum auch immer?).

    System::Void Diagramm::picboxGraphic_MouseMove(System::Object^  sender, 
    System::Windows::Forms::MouseEventArgs^  e){
    
            ...
    
            if ( framePath != nullptr){
    		framePath->AddRectangle(%getZoomFrame(e->X,e->Y));
    	}
    };
    

    Die Frage ist nun wie ich quasi getZoomFrame(e->X,e->Y) so dereferenziere das ich das Object, und kein handle bekomme?

    mfg
    zimmys

    p.s. die hier gezeigt version mit

    %
    

    gibt eine Fehlermeldung von wegen nur Instanz einer Verweisklasse (errorC3071)



  • ok, hat sich schon erledigt.

    habe ein Rechteck erzeugt und dieses dann so bearbeitet wie ich´s brauchte udn dann übergeben.

    if(mouseDownX<=mouseX && mouseDownY<=mouseY){
    				rectangle.X=mouseDownX;
    				rectangle.Y=mouseDownY;
    				rectangle.Width=mouseX-mouseDownX;
    				rectangle.Height=mouseY-mouseDownY;
    				graphFrame->DrawRectangle(pen, rectangle);
    			}
    

    wie kann ich aber das gezeichnete Rechteck wieder verschwinden lassen, ohne die darunter liegende Grafik wieder zu zerstören?

    mfg



  • das geht IMHO nicht, da es sich um eine bitmap handelt.


Anmelden zum Antworten