allgemeines Problem
-
Hallo,
ich habe da mal ein Frage. Ich habe sonst immer mit Bolrand gearbeitet. Jetzt habe ich Visual Studio C++ 2008.
Ich habe hier einfach mal einen Button kreiert.
1. Unter Borland konnte ich hier auf Buttonfunktionen wie Mouseover zugreifen und nutzen. Hier finde ich das nicht. Teilweise sind dies auch Puplic-Funktionen.2. Wenn ich unter die Buttoneigenschaften gehen und die Größe ändern möchte, muss ich erst auf Size und dann Breite und Höhe.
Unter Borland konnte man einfach mitbutton1->size->witdh = 40;
die Breite ändern. Unter Visual funkt das nicht. Hier funkt se komischerweise nur mit
button1->Height = 30;
Die ist doch albern. wozu wird dann die Size bei den Eigenschaften extra angegeben, wenn es damit nicht funkt?
3. Desweiteren werden Funktionen angeboten, die mit Button garnicht verwendet werden können. soetwas kenne ich nicht. Bei Borland wurde auch nur die Funktionen angezeigt, die verwendet werden können.
4. Ist es richtig, dass bei Formsanwendungen alles in eine header-Datei geschrieben wird. Müsste dies nicht in einer cpp-Datei stehen?
Ist dies alles eine Einstellungssache? Kann mir hierbei jemand helfen?
Gruß webid
-
Was Du hier beschreibst hört sich nicht nach MFC sondern nach C++/CLI an.
-
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.
-
Hallo,
1.: die entsprechenden Ereignisse heissen hier:
MouseEnter Tritt ein, wenn der Mauszeiger in den Bereich des Steuerelements eintritt. (Von Control geerbt.)
MouseHover Tritt ein, wenn der Mauszeiger auf dem Steuerelement verbleibt. (Von Control geerbt.)
MouseLeave Tritt ein, wenn der Mauszeiger den Bereich des Steuerelements verlässt. (Von Control geerbt.)
MouseMove Tritt ein, wenn der Mauszeiger über dem Steuerelement bewegt wird. (Von Control geerbt.)2.: dazu sollte man den Unterschied zwischen Werttyp und Referenztyp kennen, und weil Size eine Struktur ist, und Strukturen Werttypen sind, arbeitet man nach der Auswertung des umklammerten Ausdrucks hier:
(button1->Size)->Width = 40;
mit einer Kopie der Size, die keinen Bezug zur im Button "gehaltenen" Size mehr hat (wäre Size ein Referenztyp, so würde dies funktionieren, es würde das gleiche Size-Objekt angesprochen, das auch im Button "gehalten" wird). Weil das durchaus überraschend sein kann, steht das auch in der Dokumentation zur Control.Size-Eigenschaft (dort wird auch erwähnt, dass man durch Zuweisung einer kompletten Size-Struktur, also nicht einzeln Width und Height, auch eine Änderung erreicht, wodurch klar ist, dass Size doch seinen Sinn hat)
3.: als da wären?
4.: man kann das durchaus noch so trennen.
MfG,
Probe-Nutzer
-
Hallo,
ich danke ersteinmal für die Antwort.
1. Das es Ereignisse gibt wusste ich ja. Wie man darauf zugreift nicht. Gibt es denn auch so eine Art Ereignistabelle für jedes Tool (Button, Form, textBox, etc.)?
Bei Borland gab es direkt eine Tabelle. Dort hat man einen Doppelklick auf ein Ereignis (z.B FormCreate, FormClose, Formshow, ButtonMouseover) ausgeführt und ist dann direkt in die Funktion gesprungen , wie man es hier zm Beispiel von dem Button_Click kennt und konnte seine Anweisung dort niederschreiben.Gibt es solch eine Tabelle?
2. Aha, also kann ich in dem Falle wo ich direkt nur eine einzelne Eigenschaft ändern möchte nicht über die darüber liegende Struktur zugreifen.
Wie wäre es dann im Falle das ich die Schriftgröße und Art der Schrift des Buttons ändern möchte?button1->Font->Size = 20;
3. Hier habe ich gerade nocheinmal geschaut. Es wird alles von A-Z angezeigt. Egal ob es public oder Private ist. Manche sind fett, andere wiederum nicht. Auf die Private kann ja nicht direkt zugegriffen werden und trozdem stehen sie zur Auswahl.
4. In den Bücher kann auch keiner etwas dazu sagen, warum alles im Header steht. Ist eben so.
-
ok, zu:
1.: auch hier kannst du einen Doppelklick auf die z.B. von mir genannten Ereignisse machen, im Eigenschaften-Fenster.
2.: Font ist eine Klasse, also ein Referenztyp, grundsätzlich wäre also dein Änderungsversuch denkbar. Jetzt verhindert aber die Tatsache, dass alle Font-Eigenschaften nur les-, aber nicht schreibbar sind, diese Möglichkeit. Man muss deswegen auch hier ein komplett neues Font-Objekt erstellen (oder ein schon vorhandenes zuweisen).
3. wo siehst du da nach?
MfG,
Probe-Nutzer