Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. #include <Windows.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4.  
  5.  
  6. TCHAR className[] = TEXT("NazwaKlasy");
  7.  
  8. LRESULT CALLBACK WindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  9. /////////// WIN MAIN //////////
  10. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstace, LPSTR lpCmdLine, int NCmdShow) {
  11.  
  12. WNDCLASSEX wc = {0};
  13.  
  14. wc.cbSize = sizeof(WNDCLASSEX);
  15. wc.lpfnWndProc = WindowProc;
  16. wc.hInstance = hInstance;
  17. wc.lpszClassName = className;
  18. wc.hbrBackground = CreateSolidBrush(RGB(255, 0, 0));
  19. wc.style = CS_HREDRAW | CS_VREDRAW;
  20.  
  21. if (!RegisterClassEx(&wc)) {
  22. MessageBox(0,TEXT("Odmowa rejestracji okna"), TEXT("ODMOWA"), MB_OK);
  23. }
  24.  
  25. HWND h = CreateWindowEx(WS_EX_WINDOWEDGE, className, TEXT("HELLO WORLD"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 500, NULL, NULL, hInstance, NULL);
  26.  
  27. if (!h) {
  28. MessageBox(0, TEXT("Odmowa stworzenia okna"), TEXT("ODMOWA"), MB_OK);
  29. UnregisterClass(className, hInstance);
  30. return 0;
  31. }
  32.  
  33. ShowWindow(h, NCmdShow);
  34. UpdateWindow(h);
  35.  
  36. MSG msg;
  37.  
  38. while (GetMessage(&msg, 0, 0, 0) > 0) {
  39. TranslateMessage(&msg);
  40. DispatchMessage(&msg);
  41. }
  42.  
  43. UnregisterClass(className, hInstance);
  44.  
  45. return msg.wParam;
  46. }
  47.  
  48. /////////// SWITCH //////////
  49.  
  50. LRESULT CALLBACK WindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
  51. {
  52. static int cxClient, cyClient;
  53. int szer_prz = 150, wys_prz = 30;
  54. DWORD dlugosc;
  55. LPSTR Bufor;
  56. int ID_RADIO1 = GetDlgCtrlID( GetDlgItem(hWnd, 2) );
  57. int ID_RADIO2 = GetDlgCtrlID( GetDlgItem(hWnd, 3) );
  58. char wyn[10];
  59.  
  60. switch (Msg)
  61. {
  62.  
  63. case WM_CREATE:
  64.  
  65. CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 100, 100, szer_prz, wys_prz, hWnd, (HMENU)1, GetModuleHandle(NULL), NULL);
  66.  
  67. CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "CM NA CAL", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 100, 150, szer_prz, wys_prz, hWnd, (HMENU)2, GetModuleHandle(NULL), NULL);
  68.  
  69. CreateWindowEx(WS_EX_CLIENTEDGE, "BUTTON", "CAL NA CM", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 100, 200, szer_prz, wys_prz, hWnd, (HMENU)3, GetModuleHandle(NULL), NULL);
  70.  
  71. CreateWindowEx(WS_EX_CLIENTEDGE, "STATIC", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 100, 250, szer_prz, wys_prz, hWnd, (HMENU)4, GetModuleHandle(NULL), NULL);
  72.  
  73. break;
  74.  
  75. case WM_SIZE: //Gdy okno zmienia rozmiar
  76.  
  77. cxClient = LOWORD( lParam );
  78. cyClient = HIWORD( lParam );
  79.  
  80. MoveWindow(GetDlgItem(hWnd, 1), cxClient / 2 - 65, cyClient / 2 - 75, szer_prz, wys_prz, TRUE);
  81.  
  82. MoveWindow(GetDlgItem(hWnd, 2), cxClient / 2 - 65, cyClient / 2 - 25, szer_prz, wys_prz, TRUE);
  83.  
  84. MoveWindow(GetDlgItem(hWnd, 3), cxClient / 2 - 65, cyClient / 2 + 25, szer_prz, wys_prz, TRUE);
  85.  
  86. MoveWindow(GetDlgItem(hWnd, 4), cxClient / 2 - 65, cyClient / 2 + 75, szer_prz, wys_prz, TRUE);
  87.  
  88. break;
  89.  
  90. case WM_COMMAND:
  91.  
  92. dlugosc = GetWindowTextLength(GetDlgItem(hWnd, 1)); //******************************
  93. Bufor = (LPSTR) GlobalAlloc(GPTR, dlugosc + 1 ); // POBIERANIE TEKSTU DO BUFORA
  94. GetWindowText(GetDlgItem(hWnd, 1), Bufor, dlugosc + 1); //******************************
  95.  
  96. double liczba;
  97.  
  98. liczba = atof(Bufor);
  99. liczba = liczba * 2,54;
  100. sprintf(wyn,"%0.3f",liczba);
  101.  
  102. SetWindowText(GetDlgItem(hWnd, 4), wyn); // USTAWIENIE TEKSTU STATIC'A
  103.  
  104. GlobalFree( Bufor ); //ZWOLNIENIE PAMIĘCI BUFORA
  105.  
  106. break;
  107.  
  108. case WM_CLOSE:
  109. DestroyWindow(hWnd);
  110. break;
  111.  
  112. case WM_DESTROY:
  113. PostQuitMessage(0);
  114. break;
  115.  
  116. default:
  117. return DefWindowProc(hWnd, Msg, wParam, lParam);
  118. }
  119.  
  120. return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement