Hi,
ich hab folgendes Problem:
Ich hab in einem Programm verschiedene Phasen, also mit dem Benutzer interaktive Abschnitte, die nach Abschluss nicht mehr auf bestimmte Nachrichten in der Windowsprozedur reagieren sollen. Zum Beispiel soll bei der Nachricht WM_PAINT in der ersten Phase ein Strich und in der zweiten ein „P“ ausgegeben werden, dazu hab ich mir folgendes überlegt:
//global:
DWORD dwProcPhase = 0;
//WinProc:
LRESULT CALLBACK WndProc(HWND hWnd, UINT umsg, WPARAM wParam, LPARAM lParam)
{
switch(umsg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
if (dwProcPhase==0)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case b1:
MessageBox(NULL,„PHASE 0“,„POINT 0“, MB_OK);
++ dwProcPhase;
}
break;
}
default:
return DefWindowProc(hWnd, umsg, wParam, lParam);
}
}
Das ganze Programm wird zwar kompeliert, allerdings wird die if-Struktur immer Übergangen und auf Buttondruck wird immer die MBox ausgegeben, obwohl das ja nur einmal passieren sollte. Gibts dafür irgendeine geschicktere Lösung?
Mfg AT