MessageBox reagiert nicht ...
-
Kleine Wahrnung voher, ich bin noch nicht sehr erfahren mit der Win-API ...
Wie dem auch sei, ich habe eine Anwendung erstellt, die direkt ein Dialogfeld mit zwei Buttons anzeigt. Die Nachrichtenbehandlung scheint zu funzen, aber wenn ich versuche, das Klicken einer Schaltfläche mit dem Aufruf einer MessageBox zu verbinden, wird meine MessageBox zwar angezeigt, aber reagiert überhaupt nicht auf Mausklicke ect. Ich muss immer den Prozess oder das Debugging beenden.
Hier der Quellcode:
#include <windows.h> INT_PTR __stdcall DialogMessageLoop(HWND Window,UINT Message,WPARAM Sender,LPARAM Info) { switch(Message) { case WM_COMMAND: switch(Sender) { case IDOK: MessageBox(Window,"Du hast OK geklickt.","API-Anwendung",MB_ICONERROR|MB_OK); return 0; case IDCANCEL: PostQuitMessage(0); return 0; } } //Ansonsten normal auf das Ereignis reagieren. return DefWindowProc(Window,Message,Sender,Info); } int __stdcall WinMain(HINSTANCE Instance,HINSTANCE PreviousInstance,char* CommandLine,int ShowParameter) { DialogBox(Instance,MAKEINTRESOURCE(IDD_APIDIALOG),NULL,DialogMessageLoop); }
-
Dialoge werden mit EndDialog beendet...
-
Nicht der Dialog reagiert nicht, die MessageBox tut einfach nichts.
Ich klicke auf "OK", die MessageBox erscheint. Nun reagiert überhaupt nichts mehr. Will ich die Anwendung beenden (bei aktivierter MessageBox), wird auf die MessageBox verwiesen (sie blinkt). Aber dort kann ich zu oft auf "OK" oder auf das X klicken (MessageBox), wie ich will, tut's einfach nicht.
-
Falsche Funktion DefWindowProc, muss sein DefDlgProc
-
Martin Richter schrieb:
Falsche Funktion DefWindowProc, muss sein DefDlgProc
Falsche Funktion DefDlgProc, muss sein FALSE.
-
Mox schrieb:
Martin Richter schrieb:
Falsche Funktion DefWindowProc, muss sein DefDlgProc
Falsche Funktion DefDlgProc, muss sein FALSE.
Wohl wahr...

-
Und warum das?
-
TomTim schrieb:
Und warum das?
Weil's so in der Doku steht?
-
MFK schrieb:
TomTim schrieb:
Und warum das?
Weil's so in der Doku steht?
Wohl wahr:
http://msdn.microsoft.com/en-us/library/ms645469(VS.85).aspxEine DialogProc ist eben keine WndProc Callback...
-
Verstehe, ist also genauso wie in der Irrlicht-Engine ... Danke.