Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. // Оконная функция вызываемая операционной системой
  2. // и получается сообщение из очереди для данного приложения
  3. LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
  4. WPARAM wParam, LPARAM lParam)
  5. {
  6. PAINTSTRUCT ps;
  7. HDC hdc;
  8. static int sx, sy;
  9. static HPEN hpen;
  10. int a, b, x_scr, y_scr; //Экранные координаты
  11. POINT pt[4]= {{-60, 100},{-60,-100},{60, -100},{60, 100}};
  12. POINT pt1[4];
  13. const int WINDTH = 400;
  14. const int HEIGHT = 300;
  15. int n=2, i, j;
  16. double alpha = M_PI/n;
  17. static HBRUSH hBrush;
  18. double x;
  19. switch(message)
  20. {
  21. case WM_CREATE:
  22. hpen = CreatePen(PS_SOLID, 2, RGB(0, 0, 0));
  23. break;
  24.  
  25. case WM_SIZE:
  26. sx = LOWORD(lParam); //ширина окна
  27. sy = HIWORD(lParam);
  28. break;
  29.  
  30. case WM_PAINT:
  31. hdc = BeginPaint(hWnd, &ps);
  32. for (i=0; i<=n; i++)
  33. {
  34. hBrush = CreateSolidBrush(RGB(255,255-255./n*i, 255-255./n*i));
  35. SelectObject(hdc, hBrush);
  36. for (j =0; j <=3; j++)
  37. {
  38. pt1[j].x=500+(pt[j].x*cos(alpha*i)-pt[j].y*sin(alpha*i))+i*100;
  39. pt1[j].y = 300 +(pt[j].x*sin(alpha*i)+pt[j].y*cos(alpha*i));
  40. }
  41. Ellipse(hdc,pt1[0].x,pt1[0].y,pt1[2].x,pt1[2].y);
  42. }
  43.  
  44. EndPaint(hWnd, &ps);
  45. break;
  46.  
  47. case WM_DESTROY:
  48. DeleteObject(hpen);
  49. PostQuitMessage(0);
  50. break; //завершение программы
  51. //обработка сообщения по умолчанию
  52. default: return DefWindowProc(hWnd, message, wParam, lParam);
  53. }
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement