Visual C++ Windows Form1 Größe ändern



  • Hallo erst mal dies ist mein erster Beitrag hier im Forum. Ich programmiere seit einigen Jahren in Delphi und habe jetzt mit c++ in Visual C++ Express begonnen. Dafür habe ich mir ein Buch gekauft und die ganzen Grundlagen (Schleifen, variablen, ...) durchgearbeitet. Ich bin soweit erst mal zufrieden wenn da nicht ...

    Mein Problem:

    Ich möchte die Größe der Form1 ändern und auslesen.

    Form1->Width = 300;  //Habe ich aus der Hilfe
    

    Leider funktioniert dieser Befehl wenn ich Ihne in einem Button anwende nicht.

    Button1->Width = 300 //funktioniert zum Beispiel.
    

    Auch über Size funktioniert es nicht.

    Ich habe aber Feststellen müssen das bei mir im eigenschaften menu von Form1 die Option "name" fehlt. Bei allen anderen Objekte ist dieser Punkt logischerweise da.

    Habe ich da eine Denkfehler ?

    P.S. Was ist eigentlich der große Unterschied von C# zu C++?



  • 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.



  • Micha404 schrieb:

    ...und habe jetzt mit c++ in Visual C++ Express begonnen...

    Womit du schonmal im falschen Unterforum bist, da das MFC-Framework nicht im Express enthalten ist.

    Micha404 schrieb:

    P.S. Was ist eigentlich der große Unterschied von C# zu C++?

    C++ ist näher an der Hardware, damit erlaubt C++ einerseits mehr, ist gleichzeitig aber auch schwerer zu erlernen. Zudem umfasst die C++ Standardbibliohtek beispielsweise keine GUI.

    C# wiederum übernimmt selbst einiges an Verwaltungsaufwand, und erleichtert daher die Programmierung gerade bei Anfängern. Die .Net Bibliothek ist weitaus umfangreicher (Umfasst z.B. GUI, Datenbank,...). Gleichzeitig wird ein C# Programm in Zwischencode umgewandelt, und erst beim Starten compiliert.

    Und unter dem .Net Framework würde ich eher zu C# greifen, da C++/CLI nicht so gut von MS unterstützt wird wie C#...



  • Danke für die Hinweise und Sorry für den Post im falschen Forum.

    Und wie ist es mit meinem Problem ?



  • this->Width::set(300);//Diese Form:
    button1->Width::set(300);//Button:
    

    Die Zuweisung kann auch über = erfolgen.

    Also...

    this->Width = 300;
    

    Gruß,

    Doug_HH



  • Danke das Funktioniert aber warum wird die Form1 über "this" angesprochen obwohl ihr name "Form1" ist?
    So kann ich doch nur eine Form ansprechen.

    Danke noch mal für die Hilfe da kann ich weiter probieren.



  • das ist ein Zeiger (this-Zeiger) auf die aktuelle Form...

    Du kannst die Form1 auch so ansprechen...

    Form1::Width::set(300);
    

    Mit einem Zeiger auf eine andere Form, kannst Du auch sie ohne Probleme ansprechen...

    Gruß,

    Doug_HH



  • Micha404 schrieb:

    ... aber warum wird die Form1 über "this" angesprochen ...

    schnapp Dir mal bitte eine Buch über OOP-Grundlagen



  • Danke für die Hilfe welches Buch würdet Ihr mir empfelen ?



  • Micha404 schrieb:

    Danke das Funktioniert aber warum wird die Form1 über "this" angesprochen obwohl ihr name "Form1" ist?

    Form1 ist nehme ich mal an der Klassen, nicht der Instanz-/Objektname (Variablenname). Von einer Klasse kann man aber beliebig viele Instanzen/Objekte anlegen, und daher kann man nicht über diesen Namen auch nicht die Daten einer konkreten Instanz ändern. this steht Stellvertretend in nicht-statischen Funktionen der Klasse für die konrete Instanz.


Anmelden zum Antworten