// 9 licznik_l licznik_r.cpp: Określa punkt wejścia dla aplikacji. // #include "stdafx.h" #include "9 licznik_l licznik_r.h" #include TCHAR Class_Name[] = TEXT("Klasa"); LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { static TCHAR bufor[128]; static int licznik_l = 0, licznik_r = 0; switch (msg) { case WM_LBUTTONDOWN: { licznik_l++; wsprintf(bufor, TEXT("Lewy przycisk = %d, prawy przycisk = %d"), licznik_l, licznik_r); SetWindowText(hwnd, bufor); if (licznik_l != 0 && licznik_r!= 0) if (licznik_l == licznik_r) { if (MessageBox(hwnd, TEXT("Czy chcesz wyzerować liczniki?"), TEXT("Pytanie"), MB_OKCANCEL) == IDOK) { licznik_l = 0; licznik_r = 0; SetWindowText(hwnd, TEXT("Lewy przycisk = 0, prawy przycisk = 0")); } } break; } case WM_RBUTTONDOWN: { licznik_r++; wsprintf(bufor, TEXT("Lewy przycisk = %d, prawy przycisk = %d"), licznik_l, licznik_r); SetWindowText(hwnd, bufor); if (licznik_l != 0 && licznik_r != 0) if (licznik_r == licznik_l) { if (MessageBox(hwnd, TEXT("Czy chcesz wyzerować liczniki?"), TEXT("Pytanie"), MB_OKCANCEL) == IDOK) { licznik_l = 0; licznik_r = 0; SetWindowText(hwnd, TEXT("Lewy przycisk = 0, prawy przycisk = 0")); } } break; } case WM_CREATE: break; case WM_CLOSE: { if (MessageBox(0, TEXT("Czy chcesz wyjść?"), TEXT("Pytanie"), MB_OKCANCEL) == IDOK) DestroyWindow(hwnd); break; } case WM_DESTROY: { PostQuitMessage(0); break; } default: return DefWindowProc(hwnd, msg, wParam, lParam); break; } return 0; } int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR nCmdLine, INT nCmdShow) { MSG Komunikat; HWND okno; WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); wc.cbClsExtra = NULL; wc.cbWndExtra = NULL; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.hCursor = LoadCursor(0, IDC_ARROW); wc.hIcon = LoadIcon(0, IDI_APPLICATION); wc.hIconSm = 0; wc.style = 0; wc.hInstance = hInst; wc.lpfnWndProc = WndProc; wc.lpszClassName = Class_Name; wc.lpszMenuName = 0; if (!RegisterClassEx(&wc)) { MessageBox(okno, TEXT("Rejestracja nie powiodła się"), TEXT("Błąd"), MB_ICONWARNING); return 1; } okno = CreateWindowEx(WS_EX_CLIENTEDGE, Class_Name, TEXT("Lewy przycisk = 0, prawy przycisk = 0"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 600, 600, NULL, NULL, hInst, NULL); if (okno == NULL) { MessageBox(okno, TEXT("Stworzenie okna nie udane"), TEXT("Błąd"), MB_ICONWARNING); return 1; } ShowWindow(okno, SW_SHOW); UpdateWindow(okno); while (GetMessage(&Komunikat, okno, 0, 0)>0) { TranslateMessage(&Komunikat); DispatchMessage(&Komunikat); } return Komunikat.wParam; }