Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu -->

Меню

Програма спектр-мішень

З початку в DoDataExchange друкуємо
c[0] = 0x000000FF;
c[1] = 0x00008CFF;
c[2] = 0x0000FFD0;
c[3] = 0x00008000;
c[4] = 0x00CEE23A;
c[5] = 0x00FF0000;
c[6] = 0x008B0B8B;


SetWindowTextW(L"Спектр. Мішень.");

Потім у OnPaint()  вписуємо такий код

if (IsIconic())
     {
         CPaintDC dc(this); // контекст устройства для рисования

         SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

         // Выравнивание значка по центру клиентского прямоугольника
         int cxIcon = GetSystemMetrics(SM_CXICON);
         int cyIcon = GetSystemMetrics(SM_CYICON);
         CRect rect;
         GetClientRect(&rect);
         int x = (rect.Width() - cxIcon + 1) / 2;
         int y = (rect.Height() - cyIcon + 1) / 2;

         // Нарисуйте значок
         dc.DrawIcon(x, y, m_hIcon);
     }
     else
     {
        
         CClientDC dc(this);
         GetClientRect(&rc);

         rc.left += 180;
         rc.right -= 180;
         rc.top += 20;
         rc.bottom -= 20;

         dx = abs(rc.right - rc.left) / 7;
         dy = abs(rc.bottom - rc.top) / 7;


         for (k = 0; k < 7; k++)
         {
              hPenOxy = CreatePen(PS_SOLID, 2,c[k]);
              hOldPen = (HPEN)SelectObject(dc, hPenOxy);
              m = CreateSolidBrush(c[k]);
              oldm = (HBRUSH)dc.SelectObject(m);
             
              //dc.Rectangle(rc.left+k*dx/2, rc.top + k*dy/2, rc.right-k*dx/2, rc.bottom-k*dy/2);         
              dc.Ellipse(rc.left + k*dx / 2, rc.top + k*dy / 2, rc.right - k*dx / 2, rc.bottom - k*dy / 2);
         }
        
    
         DeleteObject(m);
         SelectObject(dc, oldm);
         SelectObject(dc, hOldPen);
         DeleteObject(hPenOxy);
        
        
         CDialog::OnPaint();
     }
Ось, що в нас вийшло


Якщо вимкнути рядок
dc.Ellipse(rc.left + k*dx / 2, rc.top + k*dy / 2, rc.right - k*dx / 2, rc.bottom - k*dy / 2);

А ввімкнути рядок,
dc.Rectangle(rc.left+k*dx/2, rc.top + k*dy/2, rc.right-k*dx/2, rc.bottom-k*dy/2);
 то в нас вийде


Комментариев нет:

Отправить комментарий

Root