Hellko

Untitled

Mar 5th, 2013
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.33 KB | None | 0 0
  1. #include <windows.h>
  2. #include <stdlib.h>
  3. #include "resource.h"
  4.  
  5. int WINAPI fn(HWND hwnd,int cmd,WPARAM wp,LPARAM lp)
  6. {  
  7.     switch(cmd)
  8.     {
  9.     case WM_INITDIALOG:
  10.         // редактируемые и статические элементы
  11.         SetDlgItemInt(hwnd,IDC_R,25,true);
  12.         SetDlgItemInt(hwnd,IDC_DT,35,true);
  13.         return 1;
  14.     case WM_CLOSE:
  15.         EndDialog(hwnd,2);
  16.         return 1;
  17.     case WM_SIZE:
  18.         InvalidateRect(hwnd,NULL,false);
  19.         return 1;
  20.     case WM_COMMAND:
  21.         switch (LOWORD(wp))
  22.         {
  23.         case IDOK:
  24.             EndDialog(hwnd,1);
  25.             return 1;
  26.         case IDC_REDRAW:
  27.             InvalidateRect(hwnd,NULL,true);
  28.             return 1;
  29.         }
  30.         return 0;
  31.     case WM_PAINT:
  32.         {
  33.             PAINTSTRUCT ps;
  34.             HDC hdc=BeginPaint(hwnd, &ps);
  35.  
  36.             RECT rt;
  37.             GetClientRect(hwnd, &rt);
  38.             int w=rt.right;int h=rt.bottom;// длина и высота рабочей области
  39.  
  40.             HBRUSH b0,b1,b2,b3;
  41.             b1=CreateSolidBrush(RGB(255,0,0)); // red
  42.             b2=CreateSolidBrush(RGB(255,255,0));    //yellow
  43.             b3=CreateSolidBrush(RGB(0,255,0));  //green
  44.  
  45.             HPEN p0,p1,p2;
  46.             p1=CreatePen(PS_SOLID,2,RGB(0,0,0));
  47.             p2=CreatePen(PS_SOLID,4,RGB(0,0,0)); // перья
  48.            
  49.             p0=(HPEN)SelectObject(hdc,p1); // текущее перо
  50.             b0=(HBRUSH)SelectObject(hdc,b1); // текущая кисть
  51.  
  52.             int dt=GetDlgItemInt(hwnd,IDC_DT,NULL,false);
  53.             int R=GetDlgItemInt(hwnd,IDC_R,NULL,false);
  54.             int X=200,Y=100;
  55.             //red
  56.             SelectObject(hdc,p1); // текущее перо
  57.             SelectObject(hdc,b1); // текущая кисть
  58.             Ellipse(hdc,X-R,Y-R,X+R,Y+R); // овал
  59.             //yellow
  60.             SelectObject(hdc,b2); // текущая кисть
  61.             Ellipse(hdc,X-R,Y+2*R-R,X+R,Y+2*R+R); // овал
  62.             //green
  63.             SelectObject(hdc,b3); // текущая кисть
  64.             Ellipse(hdc,X-R,Y+4*R-R,X+R,Y+4*R+R); // овал
  65.             Ellipse(hdc,X-2*R-R,Y+4*R-R,X-2*R+R,Y+4*R+R); // овал
  66.             Ellipse(hdc,X+2*R-R,Y+4*R-R,X+2*R+R,Y+4*R+R); // овал
  67.  
  68.             SelectObject(hdc,p0); // вернуть старые перо и кисть
  69.             SelectObject(hdc,b0);
  70.  
  71.             DeleteObject(p1); // удалить все созданные объекты
  72.             DeleteObject(p2);
  73.             DeleteObject(b1);
  74.             DeleteObject(b2);
  75.             DeleteObject(b3);
  76.             EndPaint(hwnd, &ps);
  77.  
  78.         }
  79.         return 1;
  80.     }
  81.     return 0;
  82. }
  83. int WINAPI WinMain(HINSTANCE hi,HINSTANCE,LPSTR,int)
  84. {
  85.     return DialogBox(hi,MAKEINTRESOURCE(SIMPLE),NULL,(DLGPROC)fn);
  86. }
Advertisement
Add Comment
Please, Sign In to add comment