000
17.08.2003, 21:34 Uhr
~Einsteiger
Gast
|
Hallo!
Ich habe heute angefangen, mich mit Windows-Programmierung ohne MFC (also mit WinMain) zu beschäftigen. Habe auch mein erstes Fenster erstellt und es hat funktioniert. Nur da ist noch eine Sache, die mich irgendwie stört und mich auch verwirrt:
Wenn ich über das Kontextmenü "Hinzufügen/Klasse" eine neue Klasse erstelle, dann wird dafür automatisch eine Headerdatei erstellt (wo die Includes und die Prototypen zu finden sind) und eine CPP-Datei, die den eigentlichen Quelltext enthält. Für die Datei, die die wichtigsten Funktionen zum Starten des Programms und zum Anzeigen des Fensters beinhaltet (also WinMain und WndProc) wird allerdings nur eine Datei erstellt, die außerdem nicht einmal eine Klasse beinhaltet. Kann man nicht auch diesen Code irgendwie in eine Klasse packen? Wenn ich z.B. genau das gleiche Fenster ein 2. Mal erstellen möchte, dann könnte ich einfach eine 2. Instanz der Klasse anlegen. Oder wenn ich ein nur geringfügig unterschiedliches Fenster anlegen möchte könnte ich eine andere Klasse ableiten und diese entsprechend modifizieren.
Es ist z.B. in Java so, dass dort alles als Klasse deklariert wird, und da gibt es auch bei der Start-Routine keine Ausnahme: Ich hätte also gerne eine Klasse, deren Konstruktor beim Anlegen einer neuen Instanz auch automatisch ein Fenster inklusive Message-Behandlung erstellt.
Ich Java geht das so:
// Hauptklasse inklusive Start-Funktion und Fenster public class Main extends java.awt.Frame{
// Startfunktion public static void main(String args[]){
// Neue Instanz der Fenster-Klasse erstellen Main m=new Main();
}
// Konstruktor public Main(){
// Fenster anzeigen this.show();
}
}
Kann man das in C++ auch irgendwie auf diese Art lösen? Oder kann mir wer erklären warum in C++ das Fenster nicht in eine Klasse gepackt wird?
Danke im Voraus!
mfg |