Advertisement
Guest User

213124

a guest
Dec 17th, 2018
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Windows.h>
  2. #include <stdio.h>
  3.  
  4.  
  5. //przechwytuje wszytkie komunikaty
  6. MSG Komunikat;
  7. TCHAR NazwaKlasy[] = TEXT("Jestem se klasa ");
  8.  
  9. HWND hwnd;
  10. HWND guzik,guzik1,text,wynik;
  11.  
  12.  
  13.  
  14. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  15. {
  16.    
  17.    
  18.    
  19.     switch (msg)
  20.     {
  21.     case WM_COMMAND:
  22.     {  
  23.         if((HWND) lParam == guzik)
  24.         {
  25.             double liczba;
  26.             DWORD dlugosc = GetWindowTextLength(text);
  27.             LPSTR Bufor = (LPSTR)GlobalAlloc(GPTR, dlugosc + 1);
  28.             GetWindowText(text, Bufor, dlugosc + 1);
  29.             liczba = atoi(Bufor) * 2.54;
  30.             char znak[500] = {};
  31.             sprintf_s(znak, "%f", liczba);
  32.             SetWindowText(wynik, znak);
  33.  
  34.             //MessageBox(hwnd, "NACISNĄŁEŚ GUZIK!", "Hahaha!", MB_ICONINFORMATION);
  35.         }
  36.         if ((HWND)lParam == guzik1)
  37.         {
  38.             double liczba;
  39.             DWORD dlugosc = GetWindowTextLength(text);
  40.             LPSTR Bufor = (LPSTR)GlobalAlloc(GPTR, dlugosc + 1);
  41.             GetWindowText(text, Bufor, dlugosc + 1);
  42.             liczba = atoi(Bufor) / 2.54;
  43.             char znak[500] = {};
  44.             sprintf_s(znak, "%f", liczba);
  45.             SetWindowText(wynik, znak);
  46.             //MessageBox(hwnd, "INNY GUZIK!", "Muahaha", MB_ICONINFORMATION);
  47.         }
  48.         break;
  49.     }
  50.     case WM_CLOSE:
  51.     {
  52.         if (MessageBox(NULL, TEXT("Serio chcesz zamknac?"), TEXT("Warning"), MB_YESNO) == IDYES)
  53.             DestroyWindow(hwnd);
  54.         break;
  55.     }
  56.     case WM_DESTROY:
  57.     {
  58.         PostQuitMessage(1);
  59.     }
  60.     break;
  61.  
  62.  
  63.     default:
  64.         return DefWindowProc(hwnd, msg, wParam, lParam);
  65.     }
  66.  
  67.     return 0;
  68. }
  69. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hprevInstance, LPSTR lpCmdLine, int nCmdShow)
  70. {
  71.  
  72.     //tworzenie klasy okno
  73.  
  74.     WNDCLASSEX wc;
  75.  
  76.  
  77.     wc.cbSize = sizeof(WNDCLASSEX);
  78.     wc.style = CS_VREDRAW | CS_HREDRAW;
  79.     wc.lpfnWndProc = WndProc;
  80.     wc.cbClsExtra = 0;
  81.     wc.cbWndExtra = 0;
  82.     wc.hInstance = hInstance;
  83.     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  84.     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  85.     wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 0);
  86.     wc.lpszMenuName = NULL;
  87.     wc.lpszClassName = NazwaKlasy;
  88.     wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  89.     if (!RegisterClassEx(&wc))
  90.     {
  91.         MessageBox(NULL, "Odmowa okna", "ww", MB_ICONEXCLAMATION | MB_OK);
  92.         return 1;
  93.     }
  94.     hwnd = CreateWindowEx(WS_EX_WINDOWEDGE, NazwaKlasy, "Oto Okienko", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL);
  95.     RECT okno;
  96.     GetClientRect(hwnd, &okno);
  97.     text = CreateWindowEx(0, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, okno.right / 2, okno.bottom / 2 - 50, 200, 25, hwnd, NULL, hInstance, NULL);
  98.     SetWindowText(text, NULL);
  99.     guzik = CreateWindowEx(0, "BUTTON", "Cale na centymetry", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,okno.right/2,okno.bottom/2+40,200,50,hwnd,NULL,hInstance,NULL );
  100.     guzik1 = CreateWindowEx(0, "BUTTON", "Centymetry na cale", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, okno.right/2, okno.bottom/2, 200, 50, hwnd, NULL, hInstance, NULL);
  101.     wynik = CreateWindowEx(0, "STATIC", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, okno.right / 2, okno.bottom / 2  + 100, 200, 25, hwnd, NULL, hInstance, NULL);
  102.     if (hwnd == 0)
  103.     {
  104.         MessageBox(NULL, "Nie działa", "Ojć", MB_ICONEXCLAMATION);
  105.         return 1;
  106.     }
  107.     ShowWindow(hwnd, nCmdShow);
  108.     UpdateWindow(hwnd);
  109.  
  110.  
  111.     //Petla przechwytujaca kounikaty
  112.     while (GetMessage(&Komunikat, NULL, 0, 0))
  113.     {
  114.         TranslateMessage(&Komunikat);
  115.         DispatchMessage(&Komunikat);
  116.     }
  117.  
  118.     UnregisterClass(NazwaKlasy, hInstance);
  119.     return Komunikat.wParam;
  120.  
  121.  
  122.     while (GetMessage(&Komunikat, NULL, 0, 0))
  123.     {
  124.         TranslateMessage(&Komunikat);
  125.         DispatchMessage(&Komunikat);
  126.     }
  127.  
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement