Steuerelemente einfügen, aber über CObject
-
Moin zusammen.
Also ich habe jetzt mal versucht, Steuerelemente in meine Anwendung einzufügen, ohne weitere Handels.
Und zwar will ich verschiedene Steuerelemente einfach erstellen.
Unter Java hab ich dies wie folgt erreicht:// Aus einer Datei werden Informationen über den Typ des Steuerelementes // gelesen und in Abhängigkeit davon dann ein solches erstellt for (int i=0; i < fileInformation.fileHeader.GetComponentsCount(); i++) { // Elementtyp erzeugen switch (fileInformation.elements[i].GetType()) { case 0: // Button component = new JButton(fileInformation.elements[i].GetTitle()); break; case 2: // Checkbox component = new JCheckBox(fileInformation.elements[i].GetTitle()); break; } // Größe und Position des Elements übernehmen component.setBounds(fileInformation.elements[i].GetBoundingRect()); // Element der ContentPane hinzufügen getContentPane().add(component); }Und ähnliches hatte ich jetzt auch mit den MFC vor. Ich habe es auch bereits versucht:
// Test - Einfügen von Steuerelementen CObject object; object = new CButton(); object.create("TestButton", WS_CHILD |WS_VISIBLE, CRect(10,100,20,200), NULL, GENERELL_ID);und ich erhalte dabei folgenden Fehler:
... : error C2582: 'CWnd' : 'Operator =' ist nicht verfuegbar ... : error C2039: 'create' : Ist kein Element von 'CWnd' ... : error C2143: Syntaxfehler : Fehlendes ')' vor ';' ... : error C2059: Syntaxfehler : ')'Ich hoffe, dass mir da jmd. erklären kann, wo mein gedanklicher Fehler liegt (denn ich denke, dass ich da irgendwas bei den MFC einfach falsch verstanden habe).
MfG, Schuri
-
Also wenn dann bitte:
CObject *object; object = new CButton(); object->Create("TestButton", WS_CHILD |WS_VISIBLE, CRect(10,100,20,200), NULL, GENERELL_ID);so könnte das gehen, du solltest vieleicht doch erstmal nenw enig gucken wie man die Methoden schreibt. Und dich noch ein wenig in C++ einarbeiten und die MFC.
-
Ich glaube so gehts eben nicht: Create ist ja nicht in CObject deklariert
Wenn dann:CObject *object; object = new CButton(); ((CButton*)(object))->Create("TestButton", WS_CHILD |WS_VISIBLE, CRect(10,100,20,200), NULL, GENERELL_ID);