Advertisement
seba101

(WINAPI) Quiz

Dec 19th, 2017
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Windows.h>
  2. #include <math.h>
  3. #include <list>
  4. #include <stdio.h>
  5.  
  6. using namespace std;
  7.  
  8. LPCSTR NazwaKlasy = TEXT("Klasa Okienka");
  9. MSG Komunikat;
  10. HDC hdc;
  11. HWND hwnd;
  12. RECT Rect;
  13. HWND hRadio1, hRadio2, hRadio3, hRadio4, hRadio5, hRadio6, hRadio7, hRadio8, hRadio9, hRadio10, hRadio11, hRadio12, hPytanie1, hPytanie2, hPytanie3, hPytanie4, hButtonCheck, wynik;
  14. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  15. bool wynik1, wynik2, wynik3, wynik4;
  16. char w1[50], w2[50], w3[50], w4[50], gotowy[500];
  17.  
  18. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  19. {
  20.     WNDCLASSEX wc;
  21.     wc.cbSize = sizeof(WNDCLASSEX);
  22.     wc.style = CS_HREDRAW | CS_VREDRAW;
  23.     wc.lpfnWndProc = WndProc;
  24.     wc.cbClsExtra = 0;
  25.     wc.cbWndExtra = 0;
  26.     wc.hInstance = hInstance;
  27.     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  28.     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  29.     wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  30.     wc.lpszMenuName = NULL;
  31.     wc.lpszClassName = NazwaKlasy;
  32.     wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  33.  
  34.     if (!RegisterClassEx(&wc))
  35.     {
  36.         MessageBox(NULL, TEXT("Nie mozna utworzyc okna"), TEXT("Niestety..."),
  37.             MB_ICONEXCLAMATION | MB_OK);
  38.         return 1;
  39.     }
  40.  
  41.     hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, NazwaKlasy, TEXT("Oto okienko"), WS_OVERLAPPEDWINDOW,
  42.         CW_USEDEFAULT, CW_USEDEFAULT, 1000, 1000, NULL, NULL, hInstance, NULL);
  43.  
  44.     hRadio1 = CreateWindowEx(0, "BUTTON", "Odpowiedz 1", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  45.         100, 100, 150, 30, hwnd, (HMENU)1, hInstance, NULL);
  46.  
  47.     hRadio2 = CreateWindowEx(0, "BUTTON", "Odpowiedz 2", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  48.         100, 100, 150, 30, hwnd, (HMENU)2, hInstance, NULL);
  49.  
  50.     hRadio3 = CreateWindowEx(0, "BUTTON", "Odpowiedz 3", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  51.         100, 100, 150, 30, hwnd, (HMENU)3, hInstance, NULL);
  52.  
  53.     hRadio4 = CreateWindowEx(0, "BUTTON", "Odpowiedz 1", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  54.         100, 100, 150, 30, hwnd, (HMENU)4, hInstance, NULL);
  55.  
  56.     hRadio5 = CreateWindowEx(0, "BUTTON", "Odpowiedz 2", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  57.         100, 100, 150, 30, hwnd, (HMENU)5, hInstance, NULL);
  58.  
  59.     hRadio6 = CreateWindowEx(0, "BUTTON", "Odpowiedz 3", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  60.         100, 100, 150, 30, hwnd, (HMENU)6, hInstance, NULL);
  61.  
  62.     hRadio7 = CreateWindowEx(0, "BUTTON", "Odpowiedz 1", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  63.         100, 100, 150, 30, hwnd, (HMENU)7, hInstance, NULL);
  64.  
  65.     hRadio8 = CreateWindowEx(0, "BUTTON", "Odpowiedz 2", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  66.         100, 100, 150, 30, hwnd, (HMENU)8, hInstance, NULL);
  67.  
  68.     hRadio9 = CreateWindowEx(0, "BUTTON", "Odpowiedz 3", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  69.         100, 100, 150, 30, hwnd, (HMENU)9, hInstance, NULL);
  70.  
  71.     hRadio10 = CreateWindowEx(0, "BUTTON", "Odpowiedz 1", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  72.         100, 100, 150, 30, hwnd, (HMENU)10, hInstance, NULL);
  73.  
  74.     hRadio11 = CreateWindowEx(0, "BUTTON", "Odpowiedz 2", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  75.         100, 100, 150, 30, hwnd, (HMENU)11, hInstance, NULL);
  76.  
  77.     hRadio12 = CreateWindowEx(0, "BUTTON", "Odpowiedz 3", WS_CHILD | WS_VISIBLE | BS_CHECKBOX,
  78.         100, 100, 150, 30, hwnd, (HMENU)12, hInstance, NULL);
  79.  
  80.     hButtonCheck = CreateWindowEx(0, "BUTTON", "Check", WS_CHILD | WS_VISIBLE,
  81.         100, 100, 150, 30, hwnd, NULL, hInstance, NULL);
  82.  
  83.     hPytanie1 = CreateWindowEx(0, "Static", "Odpowiedz 3", WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20,
  84.         hwnd, NULL, hInstance, NULL);
  85.  
  86.     hPytanie2 = CreateWindowEx(0, "Static", "Odpwwiedz 2", WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20,
  87.         hwnd, NULL, hInstance, NULL);
  88.  
  89.     hPytanie3 = CreateWindowEx(0, "Static", "Odpowiedz 1", WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20,
  90.         hwnd, NULL, hInstance, NULL);
  91.  
  92.     hPytanie4 = CreateWindowEx(0, "Static", "Odpowiedz 3", WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20,
  93.         hwnd, NULL, hInstance, NULL);
  94.  
  95.      wynik = CreateWindowEx(0, "Static",NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20,
  96.         hwnd, NULL, hInstance, NULL);
  97.  
  98.  
  99.     if (hwnd == NULL)
  100.     {
  101.         MessageBox(NULL, TEXT("Okno odmówiło przyjścia na świat!"), TEXT("Ale kicha..."), MB_ICONEXCLAMATION);
  102.         return 1;
  103.     }
  104.  
  105.     ShowWindow(hwnd, nCmdShow);
  106.     UpdateWindow(hwnd);
  107.  
  108.     while (GetMessage(&Komunikat, NULL, 0, 0))
  109.     {
  110.         TranslateMessage(&Komunikat);
  111.         DispatchMessage(&Komunikat);
  112.     }
  113.     return Komunikat.wParam;
  114. }
  115. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  116. {
  117.  
  118.  
  119.     switch (msg)
  120.     {
  121.     case WM_COMMAND:
  122.         if ((HWND)lParam == hRadio1)
  123.         {
  124.             CheckRadioButton(hwnd, 1, 3, 1);
  125.         }
  126.         if ((HWND)lParam == hRadio2)
  127.         {
  128.             CheckRadioButton(hwnd, 1, 3, 2);
  129.         }
  130.         if ((HWND)lParam == hRadio3)
  131.         {
  132.             CheckRadioButton(hwnd, 1, 3, 3);
  133.         }
  134.         if ((HWND)lParam == hRadio4)
  135.         {
  136.             CheckRadioButton(hwnd, 4, 6, 4);
  137.         }
  138.         if ((HWND)lParam == hRadio5)
  139.         {
  140.             CheckRadioButton(hwnd, 4, 6, 5);
  141.         }
  142.         if ((HWND)lParam == hRadio6)
  143.         {
  144.             CheckRadioButton(hwnd, 4, 6, 6);
  145.         }
  146.         if ((HWND)lParam == hRadio7)
  147.         {
  148.             CheckRadioButton(hwnd, 7, 9, 7);
  149.         }
  150.         if ((HWND)lParam == hRadio8)
  151.         {
  152.             CheckRadioButton(hwnd, 7, 9, 8);
  153.         }
  154.         if ((HWND)lParam == hRadio9)
  155.         {
  156.             CheckRadioButton(hwnd, 7, 9, 9);
  157.         }
  158.         if ((HWND)lParam == hRadio10)
  159.         {
  160.             CheckRadioButton(hwnd, 10, 12, 10);
  161.         }
  162.         if ((HWND)lParam == hRadio11)
  163.         {
  164.             CheckRadioButton(hwnd, 10, 12, 11);
  165.         }
  166.         if ((HWND)lParam == hRadio12)
  167.         {
  168.             CheckRadioButton(hwnd, 10, 12, 12);
  169.         }
  170.  
  171.         if ((HWND)lParam == hButtonCheck)
  172.         {
  173.             if ((IsDlgButtonChecked(hwnd, 3) == BST_CHECKED) == 1) wynik1 = 1; else wynik1 = 0;
  174.             if ((IsDlgButtonChecked(hwnd, 5) == BST_CHECKED) == 1) wynik2 = 1; else wynik2 = 0;
  175.             if ((IsDlgButtonChecked(hwnd, 7) == BST_CHECKED) == 1) wynik3 = 1; else wynik3 = 0;
  176.             if ((IsDlgButtonChecked(hwnd, 12) == BST_CHECKED) == 1) wynik4 = 1; else wynik4 = 0;
  177.  
  178.             if (wynik1 == 1) wsprintf(w1, "%s", "Odpowiedziales dobrze na pytanie 1"); else wsprintf(w1, "%s", "Odpowiedziales zle na pytanie 1");
  179.             if (wynik2 == 1) wsprintf(w2, "%s", "Odpowiedziales dobrze na pytanie 2"); else wsprintf(w2, "%s", "Odpowiedziales zle na pytanie 2");
  180.             if (wynik3 == 1) wsprintf(w3, "%s", "Odpowiedziales dobrze na pytanie 3"); else wsprintf(w3, "%s", "Odpowiedziales zle na pytanie 3");
  181.             if (wynik4 == 1) wsprintf(w4, "%s", "Odpowiedziales dobrze na pytanie 4"); else wsprintf(w4, "%s", "Odpowiedziales zle na pytanie 4");
  182.             wsprintf(gotowy, "%s\n%s\n%s\n%s",w1,w2,w3,w4);
  183.             SetWindowText(wynik, gotowy);
  184.  
  185.         }
  186.         break;
  187.     case WM_CREATE:
  188.         break;
  189.     case WM_CLOSE:
  190.         DestroyWindow(hwnd);
  191.         break;
  192.     case WM_DESTROY:
  193.         PostQuitMessage(0);
  194.         break;
  195.  
  196.     case WM_SIZE:
  197.         GetClientRect(hwnd, &Rect);
  198.         MoveWindow(hPytanie1, Rect.right / 2 - 75, 0, 150, 20, TRUE);
  199.         MoveWindow(hRadio1, Rect.right / 2 - 75, 20, 150, 20, TRUE);
  200.         MoveWindow(hRadio2, Rect.right / 2 - 75, 40, 150, 20, TRUE);
  201.         MoveWindow(hRadio3, Rect.right / 2 - 75, 60, 150, 20, TRUE);
  202.  
  203.         MoveWindow(hPytanie2, Rect.right / 2 - 75, 80, 150, 20, TRUE);
  204.         MoveWindow(hRadio4, Rect.right / 2 - 75, 100, 150, 20, TRUE);
  205.         MoveWindow(hRadio5, Rect.right / 2 - 75, 120, 150, 20, TRUE);
  206.         MoveWindow(hRadio6, Rect.right / 2 - 75, 140, 150, 20, TRUE);
  207.  
  208.         MoveWindow(hPytanie3, Rect.right / 2 - 75, 160, 150, 20, TRUE);
  209.         MoveWindow(hRadio7, Rect.right / 2 - 75, 180, 150, 20, TRUE);
  210.         MoveWindow(hRadio8, Rect.right / 2 - 75, 200, 150, 20, TRUE);
  211.         MoveWindow(hRadio9, Rect.right / 2 - 75, 220, 150, 20, TRUE);
  212.  
  213.         MoveWindow(hPytanie4, Rect.right / 2 - 75, 240, 150, 20, TRUE);
  214.         MoveWindow(hRadio10, Rect.right / 2 - 75, 260, 150, 20, TRUE);
  215.         MoveWindow(hRadio11, Rect.right / 2 - 75, 280, 150, 20, TRUE);
  216.         MoveWindow(hRadio12, Rect.right / 2 - 75, 300, 150, 20, TRUE);
  217.  
  218.         MoveWindow(hButtonCheck, Rect.right / 2 - 75, 320, 50, 20, TRUE);
  219.  
  220.         MoveWindow(wynik, Rect.right / 2 - 75, 340, 150, 150, TRUE);
  221.  
  222.  
  223.  
  224.         break;
  225.     default:
  226.         return DefWindowProc(hwnd, msg, wParam, lParam);
  227.     }
  228.  
  229.     return 0;
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement