Advertisement
Mihao

Konwenter

Nov 30th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.02 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include "stdio.h"
  4. #include <ctime>
  5.  
  6. #define ID_PRZELICZ 501
  7. #define ID_C 502
  8. #define ID_F 503
  9. #define ID_licz 504
  10.  
  11.  
  12. TCHAR Class_Name[] = TEXT("OKNO_TEST");
  13. MSG Komunikat;
  14. int zmienna = 0;
  15. char ilosc[128];
  16. char value[32];
  17. HINSTANCE *hInst;
  18.  
  19. HWND okno1, okno2;
  20. HWND pole, przycisk, checkbox_C, checkbox_F, edit;
  21.  
  22. double wynik = 0;
  23.  
  24. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  25. {
  26.  
  27.  
  28.  
  29.     switch (msg) {
  30.  
  31.     case WM_CREATE:
  32.  
  33.         CheckDlgButton(okno1, ID_C, BST_CHECKED); //ustaw "fajeczkę"
  34.         CheckDlgButton(okno1, ID_F, BST_UNCHECKED); //usuń "fajeczkę"
  35.         break;
  36.  
  37.     case WM_COMMAND:
  38.         switch (wParam)
  39.         {
  40.         case ID_licz:
  41.             GetWindowTextA(edit, value, 32);
  42.  
  43.             SetWindowTextA(pole, value);
  44.             break;
  45.         case ID_C:
  46.             CheckDlgButton(okno1, ID_C, BST_CHECKED); //ustaw "fajeczkę"
  47.             CheckDlgButton(okno1, ID_F, BST_UNCHECKED); //usuń "fajeczkę"
  48.             break;
  49.         case ID_F:
  50.             CheckDlgButton(okno1, ID_F, BST_CHECKED); //ustaw "fajeczkę"
  51.             CheckDlgButton(okno1, ID_C, BST_UNCHECKED); //usuń "fajeczkę"
  52.             break;
  53.         case ID_PRZELICZ:
  54.             GetWindowTextA(edit, value, 32);
  55.  
  56.             wynik = atof(value);
  57.            
  58.             if (IsDlgButtonChecked(hwnd, ID_C) == BST_CHECKED)
  59.             {
  60.                 wynik = ((5.0 / 9.0) * (wynik - 32.0));
  61.             }
  62.             else
  63.             {
  64.                 wynik = ((5.0 / 9.0) * wynik + 32.0);
  65.             }
  66.  
  67.             sprintf_s(value, "%f", wynik);
  68.            
  69.             SetWindowTextA(pole, value);
  70.             break;
  71.  
  72.         default:
  73.             //MessageBox(hwnd, TEXT("Zrobiłeś coś innego ;-)"), TEXT("Test"), MB_ICONINFORMATION);
  74.             break;
  75.         }
  76.         break;
  77.  
  78.  
  79.     case WM_LBUTTONDOWN:
  80.         zmienna++;
  81.         sprintf_s(ilosc, "%d", zmienna);
  82.         SetWindowTextA(hwnd, ilosc);
  83.         break;
  84.     case WM_CLOSE:
  85.         if ((MessageBox(hwnd, TEXT("Czy chcesz wyłączyć okno ?"), TEXT("Pytanie"), MB_OKCANCEL)) == IDOK)
  86.             DestroyWindow(hwnd);
  87.         else break;
  88.     case WM_DESTROY:
  89.         PostQuitMessage(0);
  90.         break;
  91.     default:
  92.         return DefWindowProcW(hwnd, msg, wParam, lParam);
  93.     }
  94.     return 0;
  95. }
  96.  
  97. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  98. {
  99.     hInst = &hInstance;
  100.     WNDCLASSEX window;
  101.     window.cbClsExtra = NULL;
  102.     window.cbSize = sizeof(WNDCLASSEX);
  103.     window.cbWndExtra = NULL;
  104.     window.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  105.     window.hCursor = LoadCursor(*hInst, IDC_ARROW);
  106.     window.hIcon = LoadIcon(*hInst, IDI_APPLICATION);
  107.     window.hIconSm = NULL;
  108.     window.hInstance = *hInst;
  109.     window.lpfnWndProc = WndProc;
  110.     window.lpszClassName = Class_Name;
  111.     window.lpszMenuName = 0;
  112.     window.style = NULL;
  113.  
  114.     if (!RegisterClassEx(&window)) {
  115.         MessageBox(NULL, TEXT("Zarejestrowanie klasy nieudane! =("), TEXT("WARNING"), MB_OK | MB_ICONWARNING);
  116.         return 1;
  117.     }
  118.  
  119.    
  120.     okno1 = CreateWindowEx(WS_EX_WINDOWEDGE, Class_Name, TEXT("Okno 1"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, NULL, NULL, *hInst, NULL);
  121.  
  122.     if (okno1 == NULL) {
  123.         MessageBox(NULL, TEXT("Stworzenie okna nieudane! =("), TEXT("WARNING"), MB_OK | MB_ICONWARNING);
  124.         return 2;
  125.     }
  126.  
  127.     pole = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("STATIC"), TEXT("0"), WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 10, 150, 30, okno1, NULL, hInstance, NULL),
  128.  
  129.     checkbox_C  = CreateWindowEx(0, TEXT("BUTTON"), TEXT("Z F na C"), WS_CHILD | WS_VISIBLE | BS_CHECKBOX,  20, 45, 150, 30, okno1, (HMENU) ID_C, hInstance, NULL);
  130.  
  131.     checkbox_F  = CreateWindowEx(0, TEXT("BUTTON"), TEXT("Z C na F"), WS_CHILD | WS_VISIBLE | BS_CHECKBOX,  20, 75, 150, 30, okno1, (HMENU) ID_F, hInstance, NULL);
  132.  
  133.     edit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER,20, 105, 150, 20, okno1, (HMENU) ID_licz , hInstance, NULL);
  134.  
  135.     przycisk = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("BUTTON"), TEXT("Przelicz"), WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 135, 150, 30, okno1, (HMENU)ID_PRZELICZ, hInstance, NULL),
  136.  
  137.     ShowWindow(okno1, nCmdShow);
  138.     UpdateWindow(okno1);
  139.  
  140.     while (GetMessage(&Komunikat, NULL, 0, 0)) {
  141.  
  142.         TranslateMessage(&Komunikat);
  143.         DispatchMessage(&Komunikat);
  144.     }
  145.     UnregisterClass(Class_Name, *hInst);
  146.     return Komunikat.wParam;
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement