#include #define ID_PRZYCISK1 501 #define ID_PRZYCISK2 502 LPSTR NazwaKlasy = “Klasa Okienka”; MSG Komunikat; LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); HWND g_hPrzycisk; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { //WYPEŁNIANIE STRUKTURY WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(0,IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = (hInstance, MAKEINTRESOURCE(200)); wc.lpszClassName = NazwaKlasy; wc.hIconSm = LoadIcon(hInstance, “ikona”); //REJESTROWANIE KLASY OKNA if(!RegisterClassEx(&wc)) { MessageBox(NULL, “Wysoka Komisja odmawia rejestracji tego okna!”, “Niestety…”, MB_ICONEXCLAMATION | MB_OK); return 1; } //TWORZENIE OKNA HWND hwnd; hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, NazwaKlasy, “Moje okienko!”, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL); if(hwnd==NULL) { MessageBox(NULL, “Okno odmówiło przyjścia na świat!”, “Ale kicha…”, MB_ICONEXCLAMATION); return 1; } ShowWindow(hwnd, nCmdShow); //Pokaż okienko… UpdateWindow(hwnd); HWND hButton1 = CreateWindowEx(WS_EX_CLIENTEDGE, “BUTTON”, “Pierwszy”, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 30, hwnd, (HMENU)ID_PRZYCISK1, hInstance, NULL), hButton2 = CreateWindowEx(WS_EX_CLIENTEDGE, “BUTTON”, “Drugi”, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 100, 150, 30, hwnd, (HMENU)ID_PRZYCISK2, hInstance, NULL); //Pętla komunikatów while(GetMessage(&Komunikat, NULL, 0, 0)) { TranslateMessage(&Komunikat); DispatchMessage(&Komunikat); } return Komunikat.wParam; } case WM_COMMAND: //Tu wyrzuca błąd switch(wParam) { case ID_PRZYCISK1: MessageBox(hwnd, “Wcisnąłeś przycisk 1”, “Test”, MB_ICONINFORMATION); break; case ID_PRZYCISK2: MessageBox(hwnd, “Wcisnąłeś przycisk 2”, “Test”, MB_ICONINFORMATION); break; default: MessageBox(hwnd, “Zrobiłeś coś innego ;-)”, “Test”, MB_ICONINFORMATION); } break; //OBSŁUGA ZDARZEŃ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; }