Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <Windows.h>
- #include "stdio.h"
- #include <ctime>
- #include <cstdlib>
- #include <algorithm>
- #include <iostream>
- TCHAR Class_Name[] = TEXT("OKNO_TEST");
- MSG Komunikat;
- int zmienna = 0;
- char ilosc[128];
- HINSTANCE *hInst;
- HWND przyciski[4][4];
- int tablica[15];
- int r_a, r_b, r_c, r_d;
- char a[3];
- char b[3];
- char c[3];
- char d[3];
- char klikniety_button[3];
- char pusto[3] = " ";
- void sprawdz(int x, int y) { //2 3
- GetWindowTextA(przyciski[x][y], klikniety_button, 3);
- strcpy_s(a, klikniety_button);
- strcpy_s(b, klikniety_button);
- strcpy_s(c, klikniety_button);
- strcpy_s(d, klikniety_button);
- if( x > 0) GetWindowTextA(przyciski[x-1][y], a, 3); // nad
- if (x < 3) GetWindowTextA(przyciski[x+1][y], b, 3); // pod
- if (y < 3) GetWindowTextA(przyciski[x][y+1], c, 3); //prawo
- if (y > 0) GetWindowTextA(przyciski[x][y-1], d, 3); // lewo
- if (strcmp(a,pusto) == 0)
- {
- SetWindowTextA(przyciski[x-1][y], klikniety_button);
- SetWindowTextA(przyciski[x][y], pusto);
- }
- if (strcmp(b, pusto) == 0)
- {
- SetWindowTextA(przyciski[x + 1][y], klikniety_button);
- SetWindowTextA(przyciski[x][y], pusto);
- }
- if (strcmp(c, pusto) == 0)
- {
- SetWindowTextA(przyciski[x][y+1], klikniety_button);
- SetWindowTextA(przyciski[x][y], pusto);
- }
- if (strcmp(d, pusto) == 0)
- {
- SetWindowTextA(przyciski[x ][y-1], klikniety_button);
- SetWindowTextA(przyciski[x][y], pusto);
- }
- };
- LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
- {
- srand(time(0));
- switch (msg) {
- case WM_CREATE:
- {
- for (int k = 0; k < 16; k++)
- {
- tablica[k] = k + 1;
- }
- for (int k = 0; k < 16; k++)
- {
- // r_a = rand() % 15;
- // r_b = rand() % 15;
- // r_c = rand() % 15;
- // r_d = rand() % 15;
- if (tablica)
- std::swap(tablica[rand() % 15], tablica[rand() % 15]);
- }
- int count = 0;
- for (int i = 0; i < 4; i++)
- {
- for (int j = 0; j < 4; j++)
- {
- przyciski[i][j] = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("BUTTON"), TEXT("Pierwszy"), WS_CHILD | WS_VISIBLE | WS_BORDER, 20 + j * 65, 20 + i * 65, 60, 60, hwnd, (HMENU)count, *hInst, NULL);
- if (tablica[count] > 0 && tablica[count] < 16)
- sprintf_s(ilosc, "%d", tablica[count]);
- else
- sprintf_s(ilosc, " ");
- SetWindowTextA(przyciski[i][j], ilosc);
- count++;
- }
- }
- }
- case WM_LBUTTONDOWN:
- zmienna++;
- sprintf_s(ilosc, "%d", zmienna);
- SetWindowTextA(hwnd, ilosc);
- break;
- case WM_CLOSE:
- if ((MessageBox(hwnd, TEXT("Czy chcesz wyłączyć okno ?"), TEXT("Pytanie"), MB_OKCANCEL)) == IDOK)
- DestroyWindow(hwnd);
- else break;
- case WM_COMMAND:
- {
- if ((HWND)lParam == przyciski[0][0]) {
- sprawdz(0, 0);
- }
- if ((HWND)lParam == przyciski[0][1]) {
- sprawdz(0, 1);
- }
- if ((HWND)lParam == przyciski[0][2]) {
- sprawdz(0, 2);
- }
- if ((HWND)lParam == przyciski[0][3]) {
- sprawdz(0, 3);
- }
- if ((HWND)lParam == przyciski[1][0]) {
- sprawdz(1, 0);
- }
- if ((HWND)lParam == przyciski[1][1]) {
- sprawdz(1, 1);
- }
- if ((HWND)lParam == przyciski[1][2]) {
- sprawdz(1, 2);
- }
- if ((HWND)lParam == przyciski[1][3]) {
- sprawdz(1, 3);
- }
- if ((HWND)lParam == przyciski[2][0]) {
- sprawdz(2, 0);
- }
- if ((HWND)lParam == przyciski[2][1]) {
- sprawdz(2, 1);
- }
- if ((HWND)lParam == przyciski[2][2]) {
- sprawdz(2, 2);
- }
- if ((HWND)lParam == przyciski[2][3]) {
- sprawdz(2, 3);
- }
- if ((HWND)lParam == przyciski[3][0]) {
- sprawdz(3, 0);
- }
- if ((HWND)lParam == przyciski[3][1]) {
- sprawdz(3, 1);
- }
- if ((HWND)lParam == przyciski[3][2]) {
- sprawdz(3, 2);
- }
- if ((HWND)lParam == przyciski[3][3]) {
- sprawdz(3, 3);
- }
- break;
- }
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- default:
- return DefWindowProcW(hwnd, msg, wParam, lParam);
- }
- return 0;
- }
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
- {
- hInst = &hInstance;
- WNDCLASSEX window;
- window.cbClsExtra = NULL;
- window.cbSize = sizeof(WNDCLASSEX);
- window.cbWndExtra = NULL;
- window.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
- window.hCursor = LoadCursor(*hInst, IDC_ARROW);
- window.hIcon = LoadIcon(*hInst, IDI_APPLICATION);
- window.hIconSm = NULL;
- window.hInstance = *hInst;
- window.lpfnWndProc = WndProc;
- window.lpszClassName = Class_Name;
- window.lpszMenuName = 0;
- window.style = NULL;
- if (!RegisterClassEx(&window)) {
- MessageBox(NULL, TEXT("Zarejestrowanie klasy nieudane! =("), TEXT("WARNING"), MB_OK | MB_ICONWARNING);
- return 1;
- }
- HWND okno1, okno2;
- okno1 = CreateWindowEx(WS_EX_WINDOWEDGE, Class_Name, TEXT("Okno 1"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, NULL, NULL, *hInst, NULL);
- if (okno1 == NULL) {
- MessageBox(NULL, TEXT("Stworzenie okna nieudane! =("), TEXT("WARNING"), MB_OK | MB_ICONWARNING);
- return 2;
- }
- ShowWindow(okno1, nCmdShow);
- UpdateWindow(okno1);
- while (GetMessage(&Komunikat, NULL, 0, 0)) {
- TranslateMessage(&Komunikat);
- DispatchMessage(&Komunikat);
- }
- UnregisterClass(Class_Name, *hInst);
- return Komunikat.wParam;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement