Графики с помощью
Download
1 / 14

Графики с помощью MFC - PowerPoint PPT Presentation


  • 466 Views
  • Uploaded on

Графики с помощью MFC. Рябова Анна Сергеевна [email protected] Пакет Microsoft Foundation Classes. MFC — библиотека на языке C++, разработанная Microsoft и призванная облегчить разработку GUI-приложений для Microsoft Windows путем использования богатого набора библиотечных классов.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Графики с помощью MFC' - kalb


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Графики с помощью MFC

Рябова Анна Сергеевна

[email protected]


Пакет Microsoft Foundation Classes

  • MFC — библиотека на языке C++, разработанная Microsoft и призванная облегчить разработку GUI-приложений для Microsoft Windows путем использования богатого набора библиотечных классов.



В простейшем случае программа, написанная с помощью MFC,

содержит два класса, порождаемые от классов иерархии

библиотеки: класс, предназначенный для создания приложения, и

класс, предназначенный для создания окна.

class CTestGraphApp : public CWinApp

{

};

class CTestGraphDlg : public CDialog

{

};


Область для рисования написанная с помощью MFC,

  • Поместить на диалог элемент StaticText

  • Через окно свойств задать ему уникальный IDIDC_GRAPHили MYGRAPHили G100500

  • Связать с элементом переменную:

  • Сложный способ

    • Объявить переменную типа CStatic в классе диалогового окна CStatic m_DrawArea;

    • Связать переменную и элемент DDX_Control(pDX, IDC_GRAPH, m_DrawArea); в методе DoDataExchange


Область для рисования написанная с помощью MFC,

  • Связать с элементом переменную:

  • Простой способ

    • Правой кнопкой мыши на элементе

    • Выбрать Add Variable

    • Настроить категорию Control, тип CStatic, имяm_DrawArea

    • Нажать OK


Рисование по кнопке написанная с помощью MFC,

  • Добавить кнопку на диалоговое окно

  • Создать метод, вызывающийся при нажатии на кнопку

    • Двойной щелчок по кнопке

    • Add Event Handler механизмпо правой кнопке мыши


Device context
Device context написанная с помощью MFC,

  • CClientDC – класс, который позволяет выводить графику в рабочей области окна.

  • Рисование происходит на так называемом контексте устройства (Device context). Идея следующая: рисуем на некотором абстрактном DC. Если DC связать с окном на экране, то рисование будет в происходить в окне; если связать его с принтером – то на принтере; если с файлом – то, соответственно, в файл.

  • Если рисование происходит внутри функции OnDraw, то в качестве параметра функции передается указатель на уже созданный приложением DC, поэтому его можно просто использовать, не заботясь о создании и удалении.

  • Если рисование происходит в какой-то другой функции (в ответ на какое-нибудь событие, например, при нажатии кнопки), то этот контекст нужно получить. Это делается так: CClientDC dc(this);


Рисуем график написанная с помощью MFC,

void CGraphDlg::OnBnClickedButton1()

{

//Создаем контекст, в котором будем рисовать

CClientDC dc(&m_DrawArea);

//Узнаем размеры прямоугольника

CRect rc;

m_DrawArea.GetClientRect(&rc);

int w = rc.Width();

int h = rc.Height();

int x_start = 10;

int y_start = h-10;

//Рисуем …

}


// написанная с помощью MFC,Рисуем

CPen pnPenBlack(PS_SOLID,1,RGB(0,0,0));

CPen * pOldPen = dc.SelectObject(&pnPenBlack);

dc.FillSolidRect(rc,RGB(255,255,255));

dc.MoveTo(x_start - 5,y_start);

dc.LineTo(x_start + w-15, y_start);

dc.MoveTo(x_start,y_start+5);

dc.LineTo(x_start, y_start-h+15);

CPen pnPenRed(PS_SOLID,1,RGB(255,0,0));

dc.SelectObject(&pnPenRed);

dc.MoveTo(x_start, y_start);

for(int i = 3; i < w-x_start-2; i+=3)

{

dc.LineTo(x_start + i, y_start - int(h/3*(1 - sin((float)i))));

}

dc.SelectObject(pOldPen);


Результат написанная с помощью MFC,


Задание 4 написанная с помощью MFC,

  • Создать приложение, в котором будет изображен график заранее заданной функции с параметрами

  • Сделать параметры доступными для редактирования

  • Перерисовывать график при изменении параметров (можно по кнопке)

    по желанию:

  • Масштабирование системы координат

  • Опция для отрисовки нескольких графиков в одной области


Ax 2 bx c
Пример написанная с помощью MFC,ax^2 + bx + c


ad