Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

31.12.2006, 15:00

Konfigurationsdialog für Direct3D

Ich will mir einen Konfigurationdialog für Direct3D schreiben (Also von Hand mit CreateWindowEx). Jetzt möchte ich, dass dieser Dialog in einer anderen Nachrichtenschleife verarbeitet wird als das Hauptfenster, wie es bei Ressourcen mit der DialogBox Funktion funktioniert. Also dass sie nicht zusammen sondern nacheinander verarbeitet werden. Wie kann ich so etwas machen?
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

2

31.12.2006, 15:27

Ich würde CreateWindowEx einfach nochmal für den Dialog aufrufen und eine andere Callbackfunktion angeben

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

31.12.2006, 15:28

Die Nachrichtenschleife kannst du ja ruhig nur einmal nehmen, weil die universell ist. Du musst nur die Fenster mit verschiedenen Callbackfunktionen "verbinden". Das eine Fenster kann ja, wenn es geschlossen wird, das 2. Fenster erstellen. Oder was genau willst du erreichen?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

4

31.12.2006, 20:05

Das wäre eine Möglichkeit das Fenster in der Callbackfunktion zu erstellen, aber viel schöner fände ich es wenn es so gehen würde:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int WINAPI WinMain (...)
{
       Konfigurationsstruktur Config;

       RufeHierDenDialogAufUndVerarbeiteIhnGleich (&Config);

       ErstelleHierHauptFensterNachDemAbfragenDerDirect3DParameter ();

       InitialisiereDirect3D (Config);

       while (GetMessage (...))
       {
              TranslateMessage (...);
              DispatchMessage (...);
       }

       return 0;
}
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

01.01.2007, 03:06

Und warum willst du dann keine Res + DialogBox nehmen? Du kannst ja den Dialog leer lassen und erst beim INITDIALOG mit Inhalt füllen.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

6

01.01.2007, 18:01

Ich hab noch eine Frage. Warum funktioniert es nicht wenn ich eine zweite Nachrichtenschleife nach dem erstellen des Dialogs und vor dem erstellen des Hauptfensters setze. Wenn ich das mache, dann wird der Dialog verarbeitet aber nach dem Schließen des Dialogs wird die Schleife nicht verlassen.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

01.01.2007, 18:08

PostQuitMessage könnte dir helfen.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

8

01.01.2007, 19:25

Danke, das ich da nicht selbst deauf gekommen bin. :evil:
So funktioniert alles einwandfrei.

Aber ich habe noch ein Problem. Jetzt hab ich mir gedacht, dass diese Schleife nur nachrichten von dem Dialog verarbeiten soll, dass es nie zu irgendwelchen komplikationen kommt. Darum habe ich als zweiten parameter der GetMessage das Handle des Fensters angegeben aber jetzt hängt das Programm wieder in der Schleife fest. Es läuft alles normal, selbst die PostQuitMessage Funktion wird aufgerufen, aber nach dem Aufruf bricht die Schleife nicht ab.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Werbeanzeige