Всем привет!Сегодня мы будем делать легенькую программку,после включения которой,появиться диаграмма с 4 секторами(разных цветов).Приступим...
Для начала качаем MicrosoftVisualStudio,для этого нажмите на эту кнопку
Потом скачиваем архив с начальным кодом, вот этот архив
Теперь открываем VisualStudio,заходим в Обозреватель решений.Нам потребуется 2 файла:
ProgramDlg.cpp u ProgramDlg.h
Заходим в ProgramDlg.h , опускаемся в самый низ,и там пишем:
------------------------------------------------------------------------
private:
HPEN hPenOxy, hOldPen;
HBRUSH m, oldm, brush;
HPEN pen;
COLORREF cf, c[25];
CPen d, oldd;
CBitmap pic;
CRect rc, w, kw[12];
CString ms, t, z;
int Matrix[50][50];
int RH, RW, k, i, j, cx, cy, dx, dy;
bool fg;
------------------------------------------------------------------------
Для начала качаем MicrosoftVisualStudio,для этого нажмите на эту кнопку
Потом скачиваем архив с начальным кодом, вот этот архив
Теперь открываем VisualStudio,заходим в Обозреватель решений.Нам потребуется 2 файла:
ProgramDlg.cpp u ProgramDlg.h
Заходим в ProgramDlg.h , опускаемся в самый низ,и там пишем:
------------------------------------------------------------------------
private:
HPEN hPenOxy, hOldPen;
HBRUSH m, oldm, brush;
HPEN pen;
COLORREF cf, c[25];
CPen d, oldd;
CBitmap pic;
CRect rc, w, kw[12];
CString ms, t, z;
int Matrix[50][50];
int RH, RW, k, i, j, cx, cy, dx, dy;
bool fg;
------------------------------------------------------------------------
Теперь заходим в ProgramDlg.cpp
Находим строку : void CProgramDlg::DoDataExchange(CDataExchange* pDX)
И там стираем вот это :
c[0] = 0xFF00FF;
c[1] = 0xFFA500;
c[2] = 0xFFFF;
c[3] = 0x0C7800;
c[4] = 0x005690;
c[5] = 0xFFFF0000;
c[6] = 0xCC00AA;
c[7] = 0xAA5600;
c[8] = 0xAAAA;
c[9] = 0x00CC00;
c[10] = 0x090056;
c[11] = 0xF0F0F0;
Теперь доходим до строки : void CProgramDlg::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
{
CDialog::OnPaint();
CClientDC dc(this);
GetClientRect(&rc);
//HPEN hPenOxy, hOldPen; - включить перо рисование
hPenOxy = CreatePen(PS_SOLID, 5, RGB(155,20,168));
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
int x1, x2, x3, x4, y1, y2, y3, y4;
dc.FillSolidRect(&rc, 0x00FFFFFF);
hPenOxy = CreatePen(PS_SOLID, 3, 0x00FFFFFF);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
x1 = rc.left + 170;
y1 = rc.top + 10;
x2 = rc.right - 170;
y2 = rc.bottom - 10;
// определить цвет рисования обьекта
m = CreateSolidBrush(0x0000BBFF);
oldm = (HBRUSH)dc.SelectObject(m);
dc.Ellipse(x1, y1, x2, y2);
// определить цвет рисования обьекта
m = CreateSolidBrush(0x00E16941);
oldm = (HBRUSH)dc.SelectObject(m);
x3 = x2;
y3 = (y1 + y2) / 2 + 20;
x4 = (x1 + x2)/2;
y4 = y1;
dc.Pie(x1, y1, x2, y2, x3, y3, x4, y4);
// определить цвет рисования обьекта
m = CreateSolidBrush(0x002E67F3);
oldm = (HBRUSH)dc.SelectObject(m);
x3 = x2-50;
y3 = y2;
x4 = x2;
y4 = (y1 + y2) / 2 + 20;
dc.Pie(x1, y1, x2, y2, x3, y3, x4, y4);
// определить цвет рисования обьекта
m = CreateSolidBrush(0x00C4A69A);
oldm = (HBRUSH)dc.SelectObject(m);
x3 = x1;
y3 = y2-50;
x4 = x2-50;
y4 = y2;
dc.Pie(x1, y1, x2, y2, x3, y3, x4, y4);
// рисование скругленного прямоугольника
//rc.DeflateRect(5, 5);
//dc.RoundRect(&rc, CPoint(45, 45));
SelectObject(dc, hOldPen);
DeleteObject(hPenOxy);
DeleteObject(m);
SelectObject(dc, oldm);
}
}
----------------------------------------------------------
Далее нажимаем на Локальный отладчик Windows , и у нас получается :
Спасибо за внимание :) Некоторые материалы взяты с этого сайта
Комментариев нет:
Отправить комментарий