Mein denke, es ist irgendwie eine WM_QUIT Nachricht empfangen, denn das ist, was die while-Schleife dreht sich um (was nach dem proc immer dann, wenn eine WM_DESTROY Nachricht verarbeitet Funktion geschieht)Warum kann ich mit PeekMessage() keine erfolgreiche Nachrichtenschleife erstellen?
Das Fenster automatisch, wenn ich anstelle von GetMessage verwenden PeekMessage schließt im, mit PeekMessage, um die Schleife bei maximaler Geschwindigkeit
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
if(!CreateMainWindow(hinstance, nCmdShow))
return false;
//this works
while (GetMessage(&msg, (HWND) NULL, 0 , 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
UNREFERENCED_PARAMETER(lpCmdLine);
}
//this automatically closes the window
int done = 0;
while (!done)
{
if (PeekMessage (&msg, NULL, 0 ,0, PM_REMOVE))
{
if (msg.message = WM_QUIT)
done = 1;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
UNREFERENCED_PARAMETER(lpCmdLine);
hier ist die einfache WinProc Funktion
LRESULT CALLBACK WinProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM
lParam)
{
switch(msg)
{
Case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc (hWnd, msg, wParam, lParam);
}
Ich rollte Ihre letzte Bearbeitung zurück, da Sie die Frage mit der Antwort überschrieben haben. Zwei Antworten ohne Frage sind für zukünftige Besucher nicht hilfreich. Da Sie dies nicht getan haben, überlegen Sie sich, die [Tour] zu nehmen. – IInspectable
if (msg.message == WM_QUIT) –
"* Ich benutze PeekMessage, um die Schleife mit maximaler Geschwindigkeit auszuführen *" - was Sie denken lässt, 'PeekMessage()' in einer Schleife aufzurufen ist schneller als 'GetMessage() aufzurufen 'in einer Schleife? –