Hi,
Für meine Nachrichtenschleife verwende ich PeekMessage.
Allerdings hängt sich das komplette System dann immer für 10 Sekunden auf und dann läuft es wieder für ne halbe Sekunde und dann hängt sich es wieder für 10 Sekunden auf, usw... .
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
while(!bQuit)
{
while(PeekMessage(&stMessage, NULL, 0, 0, PM_REMOVE))
{
if(stMessage.message == WM_QUIT)
bQuit = true;
TranslateMessage(&stMessage);
DispatchMessage(&stMessage);
}
RenderThings();
}
|
Wenn ich Debugge hängt sich das System nicht auf, aber stMessage.message hat immer den Wert 275. Ich hab dann mal Spy++ nebenher laufen lassen und festgestellt, das dem Fenster ununterbrochen WM_ACTIVE und ab und zu ein paar andere Nachrichten gesendet werden. Was soll das?
Wenn ich das ganze so mache hängt sich nix auf, allerdings ist das nicht schön, weil Translate- und Dispatchmessage manchmal unnötig aufgerufen werden.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
while(!bQuit)
{
GetMessage(&stMessage, NULL, 0, 0)
{
if(stMessage.message == WM_QUIT)
bQuit = true;
TranslateMessage(&stMessage);
DispatchMessage(&stMessage);
}
RenderThings();
}
|
Wer kann mir helfen