WINAPI moment zamknięcia procesu [WM_QUIT]

0

Witam, mam następującą zagwozdkę. Tworzę okienko, coś tam sobie rysuje i takie tam bzdety. Tym niemniej kiedy chcę zamknąć to okno, program nie wstawia do kolejki komunikatów WM_QUIT. Zatem okno znika, ale proces nadal leci. Stąd prośba o pomoc z Waszej strony, jak zamknąć to cholerstwo? :D Poniżej fragmenty kodu z procedury okna oraz pętli wiadomości:

 
//procedura okienkowa
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	static HGLRC hRC;						//kontekst tworzenia grafiki
	static HDC hDC;							//kontekst urządzenia
	int width, height;						//szerokość i wysokość okno

	switch(message)
	{
		case WM_CREATE:						//okno jest tworzone

			hDC = GetDC(hwnd);				//pobiera kontekst urządzenia
			g_HDC = hDC;
			SetupPixelFormat(hDC);			//wywołuje funkcję określającą format pikseli

			//tworzy kontekst tworzenia grafiki i czyni go bieżącym
			hRC = wglCreateContext(hDC);
			wglMakeCurrent(hDC, hRC);

			return 0;
			

		case WM_CLOSE:						//okno jest zamykane

			if(IDYES == MessageBox(hwnd, "Czy na pewno zamknąć okno?", "?", 
                                                                                   MB_YESNO |   MB_ICONQUESTION))
			{
				//dezaktywuje bieżacy kontekst i usuwa go
				wglMakeCurrent(hDC, NULL);
				wglDeleteContext(hRC);
				return DefWindowProc(hwnd, message, wParam, lParam);
			}
			else 
				return 0;
				

		case WM_DESTROY:
			MessageBox(hwnd, "Koniec działania programu", "info", MB_OK);
			PostQuitMessage(0);
			return 0;
//tutaj więcej przetwarzanych komunikatów....

/********************************************************/

 
//pętla przetwarzania komunikatów
	while(!done)
	{
		PeekMessage(&msg, hwnd, NULL, NULL, PM_REMOVE);
		
		if(msg.message == WM_QUIT)			//jeśli otrzymanu komunikat WM_QUIT
		{
			done = true;
			break;				//jeśli tak, to aplikacja kończy działanie
		}

		else
		{
			//tworzy grafikę
			//zeruje bufor ekranu i bufor głębi
			glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                               //Bam bam....
0

Po co ustawiasz done = true, skoro zaraz i tak wychodzisz z pętli za pośrednictwem break'a?

1 użytkowników online, w tym zalogowanych: 0, gości: 1