
З початку в 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);
то в нас вийде
Комментариев нет:
Отправить комментарий