Kopiuj
#define CS_DROPSHADOW 0x00020000
#include <windows.h>
LPSTR NazwaKlasy = "Klasa Okienka";
MSG Komunikat;
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_DROPSHADOW | CS_NOCLOSE;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_BTNSHADOW);
wc.lpszMenuName = NULL;
wc.lpszClassName = NazwaKlasy;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Nie można było utworzyć klasy okna", "BŁĄD", MB_ICONEXCLAMATION | MB_OK);
return 1;
}
HWND hwnd;
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_TOPMOST, NazwaKlasy, "Oto okienko", WS_SYSMENU, 400, 150, 400, 300, NULL, NULL, hInstance, NULL);
if(hwnd==NULL)
{
MessageBox(NULL, "BŁĄD OKNA", "BŁĄD", MB_ICONEXCLAMATION);
return 1;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&Komunikat, NULL, 0, 0))
{
TranslateMessage(&Komunikat);
DispatchMessage(&Komunikat);
}
return Komunikat.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
INT a;
a = MessageBox(NULL , "Jeszcze czego!", "Chciałbyś :P", MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL);
if(a == 1) return 0;
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
Jak kończę zadanie, to komunikat się wyświetla, ale po zamknięciu po ok. 5 sekundach wyskakuje okienko program nie odpowiada i prosi o zamknięcie. Jak oczywiście nacisnę anuluj to program dalej działa.