Fenster bekommt keine Nachrichten???
-
@Messag0r: Ja ich denke du hast Recht! Ich hatte übrigens das PM_NOREMOVE nur für GetMessage() drinne, damit GetMessage() die Nachricht bekommt, sonst wäre sie ja gelöscht worden. (Wenn ich mich irre korrigiert mich)
Außerdem: Das PM_NOREMOVE hat ja nix damit zu tun, dass er einfach nicht in diesen if-Zweig geht!
Habe es natürlich auch schon mit PM_REMOVE versucht!
-
Das Problem ist das PeekMessage () NIE true liefert sonder immer false. D.h. er geht immer in den else Zweig
-
Dann würde ich sagen: Es ist eben keine Nachricht, da, weil kein Fenster sichtbar ist?
WS_VISIBLE/ShowWindow?
-
while(msg.message != WM_QUIT) { if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else Engine_Main(); }Ja, genau, schreibe "WS_VISIBLE | WS_OVERLAPPEDWINDOW", nicht nur WS_OVERLAPPEDWINDOW.
-
JAAAA es klappt! Danke! Müssten aber nicht eig auch unsichtbare Fenster Nachrichten bekommen?
-
Ich habe wieder ein Problem: Ich will in der Init-Methode der GameEngine ein DirectX Device erstellen. Ich bekomme aber diese Fehlermeldung:
GameEngine.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_Direct3DCreate9@4" in Funktion ""public: void __thiscall GameEngine::Init(void)" (?Init@GameEngine@@QAEXXZ)".
PS: Ich habe die d3d9.lib und d3dx9.lib beim Linker unter zusätzliche Abhängigkeiten eingetragen!
-
TB_D schrieb:
JAAAA es klappt! Danke! Müssten aber nicht eig auch unsichtbare Fenster Nachrichten bekommen?
Sicher aber die Message Queue erhält ja nur Nachrichten vom User-Input, und den bekommt niunmal kein verstecktes Fenster.
-
Martin Richter schrieb:
Sicher aber die Message Queue erhält ja nur Nachrichten vom User-Input, und den bekommt niunmal kein verstecktes Fenster.
Wieso nicht? Ist Windows doch egal, ob ein Fenster versteckt ist oder nicht. Wenn ich ein gültiges Fenster habe, kann ich an dieses auch Nachrichten schicken. Wäre mir neu, wenn nicht.
-
Ja und außerdem ist die Nachricht WM_CREATE zum Beispiel ja nicht gerade vom User ausgelöst
. Wenn einer von euch sich mit DirectX auskennt wäre es toll wenn er sich noch mal meine zweite Frage angucken kann. Die einzige Lösung die ich dazu immer gehört habe ist d3d9.lib einbinden ... das habe ich aber schon gemacht! PS: Ich weiß das die Frage wohl eigentlich in ein anderes Forum gehört, dachte mir aber wo wir gerade am diskutieren sind ...
-
Ich weißt nicht was Du dait sagen willst.
In die Message Queue kommt WM_CREATE nicht.
WM_CREATE eben nicht über die Queue versendet sonder sofort in CreateWindow ausgelöst und ausgeliefert
-
Ahja wieder was dazu gelernt... aber was ist mit meiner zweiten Frage? Tut mir leid wenn ich damit nerve, aber ich weiß echt nicht mehr weiter
...
-
In Delphi soll es ein Orakel geben, das man alles fragen kann!