#include <windows.h>
#include "stdafx.h"
TCHAR NazwaAplikacji[] = TEXT("Aplikacja studencka");
TCHAR NazwaKlasy[] = TEXT("Klasa Okienka");
MSG Komunikat;
int okna = 3;
static LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
TCHAR Buff[64];
HWND nowe_okno;
switch(msg)
{
// case WM_CREATE:
// okna++;
// break;
case WM_CLOSE:
if(MessageBox(0, TEXT("Czy na pewno chcesz zamknac okno?"), TEXT("Uwaga"), MB_YESNO | MB_ICONQUESTION) == IDYES)
{
okna--;
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
if(!okna)
{
MessageBox(0, TEXT("01001 01111 10 00110 01100 00011"), TEXT("10101 100101"), MB_OK);
PostQuitMessage(0);
}
break;
case WM_SIZE:
swprintf( Buff, TEXT("Rozmiar okna %d x %d"), LOWORD(lParam), HIWORD(lParam) );
SetWindowText( hwnd, Buff );
break;
case WM_LBUTTONDOWN:
nowe_okno = CreateWindowEx( WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
NazwaKlasy, TEXT("Okno"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 240,
0, 0, GetModuleHandle(0), 0 );
if (!nowe_okno)
{
MessageBox( 0, TEXT("Nie udało się stworzyć nowego okna!"), NazwaKlasy, MB_ICONSTOP );
}
else
{
okna++;
}
ShowWindow( nowe_okno, SW_SHOW );
UpdateWindow( nowe_okno );
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
break;
}
return 0;
}
// Rejestracja klasy
int RejestracjaKlasy (WNDCLASSEX &wc, HINSTANCE &hInstance)
{
wc.cbSize = sizeof( WNDCLASSEX );
wc.style = 0;
wc.lpfnWndProc = WndProc; //funkcja
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_WINDOW + 1 );
wc.lpszMenuName = NULL;
wc.lpszClassName = NazwaKlasy;
wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
if( !RegisterClassEx( &wc ) )
{
MessageBox ( NULL, TEXT("Odmowa rejestracji okna!"), TEXT("Lipton"),
MB_ICONEXCLAMATION | MB_OK );
return 1;
}
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// TWORZENIE OKNA
HWND okno1;
HWND okno2;
HWND okno3;
// REJESTRACJA OKNA
WNDCLASSEX wc;
//REJESTRACJA KLASY OKNA
RejestracjaKlasy (wc, hInstance);
// BUDOWA OKNA
okno1 = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, TEXT("Okno1"), WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL );
if( okno1 == NULL )
{
MessageBox( NULL, TEXT("Okno1 odmówiło przyjścia na świat!"), TEXT("Ale kicha..."), MB_ICONEXCLAMATION );
return 1;
}
ShowWindow (okno1, nCmdShow);
UpdateWindow (okno1);
okno2 = CreateWindowEx (NULL, NazwaKlasy, TEXT("Okno2"), WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL );
if( okno2 == NULL )
{
MessageBox( NULL, TEXT("Okno2 odmówiło przyjścia na świat!"), TEXT("Ale kicha..."), MB_ICONEXCLAMATION );
return 1;
}
ShowWindow (okno2, nCmdShow);
UpdateWindow (okno2);
okno3 = CreateWindowEx (NULL, NazwaKlasy, TEXT("Okno3"), WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL );
if( okno3 == NULL )
{
MessageBox( NULL, TEXT("Okno3 odmówiło przyjścia na świat!"), TEXT("Ale kicha..."), MB_ICONEXCLAMATION );
return 1;
}
ShowWindow (okno3, nCmdShow);
UpdateWindow (okno3);
// Pętla komunikatów
while( GetMessage( & Komunikat, NULL, 0, 0 ) )
{
TranslateMessage( & Komunikat );
DispatchMessage( & Komunikat );
}
return Komunikat.wParam;
UnregisterClass(NazwaKlasy, hInstance);
return 0;
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎