Das ganze ist so:
erst wird das Config Fenster aufgerufen.
In diesem Fenster gibt man nun die gewünschten Werte ein.
Diese Werte werden in einer Struktur gespeichert und später benötigt um Direct3D zu initalisieren.
Nachdem Spiel starten geklickt wurde, wird nun das Fenster geschlossen.
Nun wird ein anderes Fenster mit den gewünschten Werten (Auflösung, Fenstermodus oder Vollbild und Fensterüberschrift) generiert.
Danach wird Direct3D initalisiert.
Das Problem war nun, dass ich das erste Fenster nicht schließen konnte, da sonst beide geschlossen wurden. (bzw. das eine generiert und sofort wieder geschlossen wurde).
So gibt es immer nur eine Nachrichtenschleifen
|
C-/C++-Quelltext
|
1
2
3
4
5
|
while (GetMessage (&message, NULL, 0, 0) )
{
TranslateMessage (&message);
DispatchMessage (&message);
}
|
nachdem das Fenster (zerstört) wurde, wird natürlich auch noch die Fensterklasse mit UnregisterClass(Classname,hInst) freigegeben.
Bei dem DirectX9 Fenster benutze ich die DoMessageLoop(); Funktion der TriBase Engine.