Fenster bekommet nicht erwartete nachricht



  • Erst mal hallo:
    Ich möchte in einer Vollbild-anwendung prüfen, wenn jemand alt+tab drückt. Bei meiner alten Anwendung (da habe ich noch DirectDraw verwendet) funktioniert der Code, bei der neuen jedoch nicht mehr (Direct3D). Ich bin mit dem Ansatz rangegangen, das jede 3D-Anwendung minimiert, wenn der Nutzer alt+tab drückt... zumindest sieht es ja auch so aus (zB. bei meiner neuen Anwendung) Jedoch kommt die WM_SIZE: SIZE_MINIMIZED nachricht nicht an: ... habe zu debug zwecken ein exit(1) dahinter geschrieben, da wo jetzt die kommentare sind.

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch(message)
    	{	
    		case WM_SIZE:
    			if(wParam==SIZE_MINIMIZED) //exit(1)
    				AppActive=0;
    			if(wParam==SIZE_RESTORED)
    				AppActive=1;
    			break;
    		case WM_KEYDOWN:
    			if(wParam==VK_ESCAPE)
    			{
    				PostQuitMessage(0);
    				return 0;				
    			}
    			break;
    		case WM_CLOSE:
    		case WM_DESTROY:
    					PostQuitMessage(0);
    					return 0;
    	}
    	return DefWindowProc(hWnd,message,wParam,lParam);
    }
    

    Jedoch hat das Programm nicht beendet. Gibt die WinAPI noch ne andere möglichkeit das nachzuprüfen, ob mein Programm inaktiv wird?
    Wäre für jede hilfe dankbar,
    Tschüssi.



  • Prüf mal WM_ACTIVATE und WM_ACTIVATEAPP.


Anmelden zum Antworten