Witam
Chciałem w ramach testu dodać ikonkę do programu. Dlatego też w Dev-C++ (ver. 4.9.9.0) odpaliłem nowy projekt, dodałem plik, napisałem kod.
Rzecz w tym, że gdy program się uruchomi, nie da się w żaden sposób zamknąć okna (jedynie URUCHOM ->Zeruj Program) lub gdy odpalamy Exe nie z Deva, a spod systemu - Zakończ zadanie z Menedżera zadań.
Co dziwne (dla mnie), ten sam plik skompilowany nie jako projekt, tylko jako oddzielny plik działa zupełnie zgodnie z oczekiwaniami.
Dodam, że mam własną procedurę obsługi okna. Jeśli ta procedura wywoła tylko funkcję DefWindowProc, to wszystko jest OK.
Procedura obsługi okna (jeśli to ważne), wygląda tak:
/* Funkcja obslugujaca okno */
LRESULT CALLBACK ProcObslugi (HWND hOkno, UINT uMsg, WPARAM wPar, LPARAM lPar)
{
switch (uMsg)
{
case WM_CLOSE:
if (MessageBox(hOkno,"Czy na pewno chcesz zamknąć to okno?","Potwierdź",MB_YESNO
| MB_ICONQUESTION | MB_APPLMODAL | MB_DEFBUTTON2)==IDYES)
{
MessageBox(hOkno,"Potwierdziłeś zamknięcie okna!","Zgoda",MB_OK | MB_ICONINFORMATION );
DestroyWindow(hOkno);
}
break;
case WM_KEYDOWN:
if (wPar==VK_ESCAPE || wPar==VK_RETURN) //VK_RETURN - ENTER
//DestroyWindow(hOkno); // tak jest bez potwierdzenia
PostMessage(hOkno,WM_CLOSE,0,0); // zwracamy komunikat do samego siebie WM_CLOSE
else if (wPar==VK_UP)
PostMessage(hOkno, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
else if (wPar==VK_DOWN)
PostMessage(hOkno, WM_SYSCOMMAND, SC_MINIMIZE, 0);
break;
default:
return DefWindowProc(hOkno,uMsg,wPar,lPar);
}
}
Gdzie jest haczyk?
Pozdrawiam