четверг, 13 апреля 2017 г.

Программа диаграмма







С помощью  команды Pie и правильным подбором координат для каждого кусочка диаграммы , можно построить и редактировать диаграмму. 

Создаём проект в VisualStudio формата MFCApplication. Через "Resourse Solutions" заходим на планшетку нашей программы и удаляем все что на нём есть.


Дальше заходим в через "Solutions Explorer" в файл 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::OnPaint() находим else и в фигурные скобки перед CDialog::OnPaint(); вставляем вот этот код:




  CClientDC dc(this);
GetClientRect(&rc);
dc.FillSolidRect(&rc, 0x00FFFFFF);
int x1, x2, x3, x4, y1, y2, y3, y4;
x1 = rc.left + 170;
y1 = rc.top + 10;
x2 = rc.right - 170;
y2 = rc.bottom - 10;
hPenOxy = CreatePen(PS_SOLID, 5, 0x00FFFFFF);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
m = CreateSolidBrush(0x0000FFFF); 
oldm = (HBRUSH)dc.SelectObject(m);
dc.Ellipse(x1, y1, x2, y2);
hPenOxy = CreatePen(PS_SOLID, 5, 0x00FFFFFF);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
m = CreateSolidBrush(0x00FA2E2E); 
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);
hPenOxy = CreatePen(PS_SOLID, 5, 0x00FFFFFF);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
m = CreateSolidBrush(0x0000A5FF);
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);
hPenOxy = CreatePen(PS_SOLID, 5, 0x00FFFFFF);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
m = CreateSolidBrush(0x00998877);
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);
SelectObject(dc, hOldPen);
DeleteObject(hPenOxy);
DeleteObject(m);
SelectObject(dc, oldm);
              

Теперь запускаем Локальный отладчик Windows и проверяем работает ли программа.

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

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