Сделай Сам Свою Работу на 5

Программа и методика испытаний





Чтобы проверить работоспособность программы, сравним графики, построенные в нашей программе, и графики, построенные в Maple.

Рис. 4. График функции при , построенный в программном пакете Maple

Код для построенния:

;

;

Результат нашей программы со значениями представленн на Рис. 5:

Подобрав масштаб изображения, видно, что графики отображены одинаково как в программном пакете Maple, так и в нашей программе.

 

Рис. 6. График функции при , построенный в программном пакете Maple

 

Рис. 7. Результат нашей программы со значениями

Рис. 8. График функции при ,

построенный в программном пакете Maple

 

Рис. 9. Результат нашей программы со значениями

 

Рис. 10. График функции при , построенный в программном пакете Maple

Рис. 11. Результат нашей программы со значениями

 

Источники, использованные в разработке

1. Марапулец Ю.В. Системное программирование в WIN API: учебное пособие. – Петропавловск-Камчатский: КамГУ им. Витуса Беринга, 2011. - 233 с.

2. Соломон Д., Русинович М. Внутреннее устройство Windows 2005. С_Пб.: Питер, 2004 г. – 746 с.

3. С.Холзнер. Visual C++: Учебный курс. С.-Пб.: Питер, 2004 г.



4. Б. Страуструп. Язык программирования C++.

5. А.Черносвитов. . Visual C++ и MFC. С.-Пб.: Питер. 2005 г.

6. А.В. Мешков, Ю.В. Тихомиров. Visual C++ и MFC (том II) – Москва, СПб.: BHV – Санкт-Петербург, 1997 – 464с.


 

Заключение

В результате работы мы получили программу для отображения графика функции .

Программа позволяет рисовать график функции при различных параметрах a, b, c, позволяет изменять цвет графика, толщину линии результата. В пргорамме присутсвуют дополнительные опции в виде: значений по осям (0х, 0у), увеличение/уменьшение масштаба.

В результате выполнения курсового проекта были получены навыки разработки программных продуктов в среде разработки Microsoft Visual C++.


 

Приложения

Приложение А – Код, добавленный в заготовку программы

GraphicView.h

// GraphicView.h : интерфейс класса CGraphicView

//

 

#pragma once

 

 

class CGraphicView : public CView

{

protected: // создать только из сериализации

CGraphicView();

DECLARE_DYNCREATE(CGraphicView)

 

CPen OldPen, AxesPen, ClrPen;

bool bBlackPen, bGreyPen, bRedPen, bGreenPen, bBluePen, bYellowPen, bCyanPen, bMagentaPen;



int red,green,blue; //переменные для настройки цвета линий

 

bool bZnach, bPoints;

 

void DoColorFalse(); //сброс флагов цвета линии

void Schet(); //вычисление значений функции и располжения точек

void Shagi(); //вычисление шага для вычисления и количества шагов

void Draw(); //прорисовка графика

void DrawAxes(); //прорисовка осей

void ClearWin(); //очистка окна

void PenReset(); //перенастройка цвета линии

void OnChangeRect(); //действия при изменении размера окна

 

int d; //толщина линии

 

int p_step; //шаг в пикселях

double step; //шаг

int countOfStep; //количество шагов

double d_a,d_b,d_c; //параметры a,b,c

double x_left,x_right; //граничные значения х

 

CRect r; //переменная, хранящая размер окна

int H,W; //для перерисовки при изменении размера окна

 

CPoint points [1000]; //точки для построения

CPoint zero; //начало координат

 

CFont Font; //шрифт

 

 

// Атрибуты

public:

CGraphicDoc* GetDocument() const;

 

// Операции

public:

 

// Переопределение

public:

virtual void OnDraw(CDC* pDC); // переопределено для отрисовки этого представления

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

protected:

virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);

virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

 

// Реализация

public:

virtual ~CGraphicView();

#ifdef _DEBUG

virtual void AssertValid() const;

virtual void Dump(CDumpContext& dc) const;

#endif

 

protected:

 

// Созданные функции схемы сообщений

protected:

DECLARE_MESSAGE_MAP()

public:

afx_msg void OnFileNew();

afx_msg void OnStart();

afx_msg void OnUpdateBlackline(CCmdUI *pCmdUI);

afx_msg void OnBlueline();

afx_msg void OnBlackline();

afx_msg void OnUpdateBlueline(CCmdUI *pCmdUI);

afx_msg void OnCyanline();

afx_msg void OnUpdateCyanline(CCmdUI *pCmdUI);

afx_msg void OnGreenline();

afx_msg void OnUpdateGreenline(CCmdUI *pCmdUI);

afx_msg void OnGreyline();

afx_msg void OnUpdateGreyline(CCmdUI *pCmdUI);

afx_msg void OnMagentaline();

afx_msg void OnUpdateMagentaline(CCmdUI *pCmdUI);



afx_msg void OnRedline();

afx_msg void OnUpdateRedline(CCmdUI *pCmdUI);

afx_msg void OnYellowline();

afx_msg void OnUpdateYellowline(CCmdUI *pCmdUI);

afx_msg void OnDecline();

afx_msg void OnIncline();

afx_msg void OnChangepar();

afx_msg void OnDecrmssht();

afx_msg void OnIncrmssht();

afx_msg void OnNumbersonaxes();

afx_msg void OnUpdateNumbersonaxes(CCmdUI *pCmdUI);

afx_msg void OnMoving(UINT fwSide, LPRECT pRect);

};

 

GraphicView.cpp

 

// GraphicView.cpp : реализация класса CGraphicView

//

 

#include "stdafx.h"

// SHARED_HANDLERS можно определить в обработчиках фильтров просмотра реализации проекта ATL, эскизов

// и поиска; позволяет совместно использовать код документа в данным проекте.

#ifndef SHARED_HANDLERS

#include "Graphic.h"

#endif

 

#include "GraphicDoc.h"

#include "GraphicView.h"

#include "Dlg.h"

#include "DlgFind.h"

 

#include <math.h>

#include <stdlib.h>

#include <fstream>

 

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

 

 

// CGraphicView

 

IMPLEMENT_DYNCREATE(CGraphicView, CView)

 

BEGIN_MESSAGE_MAP(CGraphicView, CView)

// Стандартные команды печати

ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)

ON_COMMAND(ID_Start, &CGraphicView::OnStart)

ON_UPDATE_COMMAND_UI(ID_BlackLine, &CGraphicView::OnUpdateBlackline)

ON_COMMAND(ID_BlueLine, &CGraphicView::OnBlueline)

ON_COMMAND(ID_BlackLine, &CGraphicView::OnBlackline)

ON_UPDATE_COMMAND_UI(ID_BlueLine, &CGraphicView::OnUpdateBlueline)

ON_COMMAND(ID_CyanLine, &CGraphicView::OnCyanline)

ON_UPDATE_COMMAND_UI(ID_CyanLine, &CGraphicView::OnUpdateCyanline)

ON_COMMAND(ID_GreenLine, &CGraphicView::OnGreenline)

ON_UPDATE_COMMAND_UI(ID_GreenLine, &CGraphicView::OnUpdateGreenline)

ON_COMMAND(ID_GreyLine, &CGraphicView::OnGreyline)

ON_UPDATE_COMMAND_UI(ID_GreyLine, &CGraphicView::OnUpdateGreyline)

ON_COMMAND(ID_MagentaLine, &CGraphicView::OnMagentaline)

ON_UPDATE_COMMAND_UI(ID_MagentaLine, &CGraphicView::OnUpdateMagentaline)

ON_COMMAND(ID_RedLine, &CGraphicView::OnRedline)

ON_UPDATE_COMMAND_UI(ID_RedLine, &CGraphicView::OnUpdateRedline)

ON_COMMAND(ID_YellowLine, &CGraphicView::OnYellowline)

ON_UPDATE_COMMAND_UI(ID_YellowLine, &CGraphicView::OnUpdateYellowline)

ON_COMMAND(ID_DecLine, &CGraphicView::OnDecline)

ON_COMMAND(ID_IncLine, &CGraphicView::OnIncline)

ON_COMMAND(ID_ChangePar, &CGraphicView::OnChangepar)

ON_COMMAND(ID_DecrMssht, &CGraphicView::OnDecrmssht)

ON_COMMAND(ID_IncrMssht, &CGraphicView::OnIncrmssht)

ON_COMMAND(ID_NumbersOnAxes, &CGraphicView::OnNumbersonaxes)

ON_UPDATE_COMMAND_UI(ID_NumbersOnAxes, &CGraphicView::OnUpdateNumbersonaxes)

ON_WM_LBUTTONDOWN()

ON_WM_MOUSEMOVE()

ON_WM_LBUTTONUP()

ON_WM_RBUTTONDOWN()

END_MESSAGE_MAP()

 

// создание/уничтожение CGraphicView

 

CGraphicView::CGraphicView()

{

DoColorFalse();

d=1;

red=0; green=0; blue=0;

bZnach=false;

bPoints=false;

bBlackPen=true;

 

AxesPen.CreatePen(PS_SOLID,2,RGB(0,0,0));

ClrPen.CreatePen(PS_SOLID,d,RGB(red,green,blue));

OldPen.CreateStockObject(BLACK_PEN);

 

Font.CreatePointFont(70,"TimesNewRoman");

 

}

 

void CGraphicView::DoColorFalse()

{

bBlackPen=false;

bGreyPen=false;

bRedPen=false;

bGreenPen=false;

bBluePen=false;

bYellowPen=false;

bCyanPen=false;

bMagentaPen=false;

}

 

void CGraphicView::PenReset()

{

ClrPen.DeleteObject();

ClrPen.CreatePen(PS_SOLID,d,RGB(red,green,blue));

}

 

 

CGraphicView::~CGraphicView()

{

 

}

 

BOOL CGraphicView::PreCreateWindow(CREATESTRUCT& cs)

{

// TODO: изменить класс Window или стили посредством изменения

// CREATESTRUCT cs

 

return CView::PreCreateWindow(cs);

}

 

// рисование CGraphicView

 

void CGraphicView::OnDraw(CDC* pDC)

{

CGraphicDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

if (!pDoc)

return;

 

GetClientRect(&r);

OnChangeRect();

}

 

 

// печать CGraphicView

 

BOOL CGraphicView::OnPreparePrinting(CPrintInfo* pInfo)

{

// подготовка по умолчанию

return DoPreparePrinting(pInfo);

}

 

void CGraphicView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

{

// TODO: добавьте дополнительную инициализацию перед печатью

}

 

void CGraphicView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

{

// TODO: добавьте очистку после печати

}

 

 

// диагностика CGraphicView

 

#ifdef _DEBUG

void CGraphicView::AssertValid() const

{

CView::AssertValid();

}

 

void CGraphicView::Dump(CDumpContext& dc) const

{

CView::Dump(dc);

}

 

CGraphicDoc* CGraphicView::GetDocument() const // встроена неотлаженная версия

{

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGraphicDoc)));

return (CGraphicDoc*)m_pDocument;

}

#endif //_DEBUG

 

 

// обработчики сообщений CGraphicView

 

 

// действия при нажатии на пункт меню Файл -> Запуск

void CGraphicView::OnStart()

{

CGraphicView();

CDlg dlg;

int result=dlg.DoModal();

if (result==IDOK)

{

d_a=dlg.a;

d_b=dlg.b;

d_c=dlg.c;

x_right=15;

x_left=-15;

try

{

if (d_a==0 || d_b==0)

throw "Введены неверные параметры";

else

{

GetClientRect(&r);

W=r.Width();

H=r.Height();

zero.x=r.Width()/2;

zero.y=r.Height()/2;

PenReset();

 

Schet();

bPoints=true;

Draw();

}

}

catch (const char *p)

{

MessageBox(p,"Ошибка",NULL|MB_ICONWARNING);

OnStart();

}

}

}

 

// Вычисления

void CGraphicView::Schet()

{

Shagi();

double d_x, d_y;

d_x=0.0001*d_b/abs(d_b)-d_c/d_b;

 

for (int i=0; i<1000;i++)

{

d_y=d_a*log(d_b*d_x+d_c);

points[i].y=d_y*p_step/step;

if (i==0 && (zero.y-points[i].y)>r.Height())

{

d_y=-d_y+(points[i].y-r.Height())*step/p_step;

points[i].y=r.Height();

d_x=d_b/abs(d_b)*abs(exp(d_y/d_a))-d_c/d_b;

points[i].x=zero.x+d_x*p_step/step;

}

else if (i==0 && (zero.y-points[i].y)<0)

{

d_y=d_y-(points[i].y-zero.y)*step/p_step;

points[i].y=0;

d_x=d_b/abs(d_b)*abs(exp(d_y/d_a))-d_c/d_b;

points[i].x=zero.x+d_x*p_step/step;

}

else

{

points[i].y=zero.y-points[i].y;

points[i].x=points[i-1].x+p_step;

}

d_x=d_x+step;

}

return;

}

 

void CGraphicView::Shagi()

{

p_step=3*d_b/abs(d_b);

step=(abs(x_right)+abs(x_left))*p_step/r.Width();

if (d_c==0)

countOfStep=x_right/abs(step);

else if (abs(d_c/d_b)<x_right)

countOfStep=(x_right+d_c/abs(d_c)*d_c/abs(d_b))/abs(step);

else

countOfStep=r.Width()/abs(p_step);

}

 

 

//Прорисовка

void CGraphicView::Draw()

{

PenReset();

ClearWin();

DrawAxes();

CClientDC *pDC=new CClientDC(this);

pDC->SelectObject(ClrPen);

 

int j=0;

if (points[0].x<0)

while (points[j].x<0)

j++;

else if (points[0].x>r.Width())

while (points[j].x>r.Width())

j++;

 

if (d_b>0)

for (int i=j+1; i<=countOfStep+j; i++)

{

pDC->MoveTo(points[i-1].x,points[i-1].y);

pDC->LineTo(points[i].x,points[i].y);

}

else

for (int i=countOfStep+j-1; i>=j; i--)

{

pDC->MoveTo(points[i+1].x,points[i+1].y);

pDC->LineTo(points[i].x,points[i].y);

}

pDC->SelectObject(OldPen);

 

delete pDC;

 

return;

}

 

void CGraphicView::DrawAxes()

{

CClientDC *pDC=new CClientDC(this);

pDC->SelectObject(AxesPen);

 

pDC->MoveTo(0,zero.y);

pDC->LineTo(r.Width(),zero.y);

pDC->MoveTo(r.Width()-8,zero.y-4);

pDC->LineTo(r.Width(),zero.y);

pDC->MoveTo(r.Width()-8,zero.y+4);

pDC->LineTo(r.Width(),zero.y);

 

pDC->MoveTo(zero.x,0);

pDC->LineTo(zero.x,r.Height());

pDC->MoveTo(zero.x-4,8);

pDC->LineTo(zero.x,0);

pDC->MoveTo(zero.x+4,8);

pDC->LineTo(zero.x,0);

 

if (bZnach && bPoints)

{

pDC->SetTextColor(RGB(0,0,0));

pDC->SelectObject(&Font);

 

int i_zX=zero.x;

int i_zY=zero.y;

double d_zX=0;

double d_zY=0;

float d_Sh; //шаг

CString s_zX; //переменные для перевода числа в строку, эти строки выводятся на экран

CString s_zY;

 

d_Sh=40*abs(step/p_step);

 

while (i_zX<r.Width()-40)

{

s_zX.Format("%.2f",d_zX);

pDC->MoveTo(i_zX,zero.y-4); //чёрточка на оси

pDC->LineTo(i_zX,zero.y+4);

pDC->TextOutA(i_zX+3,zero.y+5,s_zX); //вывод значения в виде текста

 

d_zX=d_zX+d_Sh;

i_zX=i_zX+40;

}

pDC->TextOutA(r.Width()-6,zero.y+5,"X");

 

while (i_zY<r.Height()-40)

{

d_zY=d_zY-d_Sh;

i_zY=i_zY+40;

s_zY.Format("%.2f",d_zY);

pDC->MoveTo(zero.x-4,i_zY);

pDC->LineTo(zero.x+4,i_zY);

pDC->TextOutA(zero.x-23,i_zY,s_zY);

}

 

i_zX=zero.x;

i_zY=zero.y;

d_zX=0;

d_zY=0;

 

while (i_zX>40)

{

d_zX=d_zX-d_Sh;

i_zX=i_zX-40;

s_zX.Format("%.2f",d_zX);

pDC->MoveTo(i_zX,zero.y-4);

pDC->LineTo(i_zX,zero.y+4);

pDC->TextOutA(i_zX+1,zero.y+5,s_zX);

}

 

while (i_zY>40)

{

d_zY=d_zY+d_Sh;

i_zY=i_zY-40;

s_zY.Format("%.2f",d_zY);

pDC->MoveTo(zero.x-4,i_zY);

pDC->LineTo(zero.x+4,i_zY);

pDC->TextOutA(zero.x-20,i_zY,s_zY);

}

pDC->TextOutA(zero.x+4,4,"Y");

}

 

delete pDC;

}

 

 

void CGraphicView::ClearWin()

{

CClientDC *pDC=new CClientDC(this);

pDC->FillSolidRect(0,0,r.Width(),r.Height(),RGB(255,255,255));

delete pDC;

}

 

// действия при нажатии на пункт меню Сервис -> Изменить параметры

void CGraphicView::OnChangepar()

{

if (bPoints)

{

CDlg dlg;

UpdateData(false);

int result=dlg.DoModal();

if (result==IDOK)

{

d_a=dlg.a;

d_b=dlg.b;

d_c=dlg.c;

x_right=15;

x_left=-15;

zero.x=r.Width()/2;

zero.y=r.Height()/2;

try

{

if (d_a==0 || d_b==0)

throw "Введены неверные параметры";

else

{

Schet();

Draw();

}

}

catch (const char *p)

{

MessageBox(p,"Ошибка",NULL|MB_ICONWARNING);

OnStart();

}

}

}

}

 

 

// при изменении размеров окна пересчитать значения и перерисовать

void CGraphicView::OnChangeRect()

{

if (bPoints && (W!=r.Width() || H!=r.Height()))

{

zero.x=zero.x*r.Width()/W;

zero.y=zero.y*r.Height()/H;

W=r.Width();

H=r.Height();

Schet();

Draw();

}

}

 

//Действия при выборе цветов

//изменения в интерфейсе

void CGraphicView::OnUpdateBlackline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bBlackPen);

}

 

void CGraphicView::OnUpdateGreyline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bGreyPen);

}

 

void CGraphicView::OnUpdateRedline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bRedPen);

}

 

void CGraphicView::OnUpdateGreenline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bGreenPen);

}

 

void CGraphicView::OnUpdateBlueline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bBluePen);

}

 

void CGraphicView::OnUpdateYellowline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bYellowPen);

}

 

void CGraphicView::OnUpdateCyanline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bCyanPen);

}

 

void CGraphicView::OnUpdateMagentaline(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bMagentaPen);

}

 

 

//выполняемые команды

void CGraphicView::OnBlackline()

{

DoColorFalse();

bBlackPen=true;

red=0; green=0; blue=0;

PenReset();

 

if (bPoints)

Draw();

}

 

void CGraphicView::OnGreyline()

{

DoColorFalse();

bGreyPen=true;

red=155; green=155; blue=155;

PenReset();

 

if (bPoints)

Draw();

}

 

void CGraphicView::OnRedline()

{

DoColorFalse();

bRedPen=true;

red=255; green=0; blue=0;

PenReset();

 

if (bPoints)

Draw();

}

 

void CGraphicView::OnGreenline()

{

DoColorFalse();

bGreenPen=true;

red=0; green=255; blue=0;

PenReset();

 

if (bPoints)

Draw();

}

 

void CGraphicView::OnBlueline()

{

DoColorFalse();

bBluePen=true;

red=0; green=0; blue=255;

PenReset();

 

if (bPoints)

Draw();

}

 

void CGraphicView::OnYellowline()

{

DoColorFalse();

bYellowPen=true;

red=255; green=255; blue=0;

PenReset();

 

if (bPoints)

Draw();

}

 

void CGraphicView::OnCyanline()

{

DoColorFalse();

bCyanPen=true;

red=0; green=255; blue=255;

PenReset();

 

if (bPoints)

Draw();

}

 

void CGraphicView::OnMagentaline()

{

DoColorFalse();

bMagentaPen=true;

red=255; green=0; blue=255;

PenReset();

 

if (bPoints)

Draw();

}

 

// действия при выборе пунктов меню Сервис -> Уменьшить толщину линии и Сервис -> Увеличить толщину линии соответственно

void CGraphicView::OnDecline()

{ if (d>1)

{

d=d--;

PenReset();

if (bPoints)

Draw();

}}

void CGraphicView::OnIncline()

{ if (d<20)

{

d=d++;

PenReset();

if (bPoints)

Draw();

}}

 

 

//Изменение масштаба

void CGraphicView::OnDecrmssht()

{

if (abs(x_right-x_left)<100 && bPoints)

{

x_right++;

x_left--;

Schet();

Draw();

}

}

void CGraphicView::OnIncrmssht()

{

int i,k;

k=0;

if (bPoints)

{

if (((x_right-x_left)>2 && (x_right/x_left<0 || x_right==0 || x_left==0)) || (abs(abs(x_right)-abs(x_left))>2 && x_right/x_left>0))

{

x_right--;

x_left++;

Schet();

Draw();

}

}

}

 

 

// действия при выборе пункта меню Сервис -> Подписи по осям

void CGraphicView::OnNumbersonaxes()

{

bZnach=!bZnach;

if (bPoints)

Draw();

}

void CGraphicView::OnUpdateNumbersonaxes(CCmdUI *pCmdUI)

{ pCmdUI->SetCheck(bZnach); }

 

GraphicDoc.h

// Переопределение

public:

virtual BOOL OnNewDocument();

virtual void Serialize(CArchive& ar);

#ifdef SHARED_HANDLERS

virtual void InitializeSearchContent();

virtual void OnDrawThumbnail(CDC& dc, LPRECT lprcBounds);

#endif // SHARED_HANDLERS

 

// Реализация

public:

virtual ~CGraphicDoc();

 

CMetaFileDC *pMetaFileDC;

 

#ifdef _DEBUG

virtual void AssertValid() const;

virtual void Dump(CDumpContext& dc) const;

#endif

 

protected:

 

// Созданные функции схемы сообщений

protected:

DECLARE_MESSAGE_MAP()

 

#ifdef SHARED_HANDLERS

// Вспомогательная функция, задающая содержимое поиска для обработчика поиска

void SetSearchContent(const CString& value);

#endif // SHARED_HANDLERS

};

 

 

GraphicDoc.cpp

// CGraphicDoc

 

IMPLEMENT_DYNCREATE(CGraphicDoc, CDocument)

 

BEGIN_MESSAGE_MAP(CGraphicDoc, CDocument)

END_MESSAGE_MAP()

 

 

// создание/уничтожение CGraphicDoc

 

CGraphicDoc::CGraphicDoc()

{

pMetaFileDC=new CMetaFileDC();

pMetaFileDC->Create();

}

 

 

Dlg.h

#pragma once

 

 

// CDlg dialog

 

class CDlg : public CDialog

{

DECLARE_DYNAMIC(CDlg)

 

public:

CDlg(CWnd* pParent = NULL); // standard constructor

virtual ~CDlg();

 

// Dialog Data

enum { IDD = IDD_DIALOG1 };

 

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

 

DECLARE_MESSAGE_MAP()

public:

double a;

double b;

double c;

afx_msg void OnBnClickedOk();

 

};

 

 

Dlg.cpp

// Dlg.cpp : implementation file

//

 

#include "stdafx.h"

#include "Graphic.h"

#include "Dlg.h"

#include "afxdialogex.h"

 

 

// CDlg dialog

 

IMPLEMENT_DYNAMIC(CDlg, CDialog)

 

CDlg::CDlg(CWnd* pParent /*=NULL*/)

: CDialog(CDlg::IDD, pParent)

, a(0)

, b(0)

, c(0)

{

 

}

 

CDlg::~CDlg()

{

}

 

void CDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Text(pDX, IDC_EDIT1, a);

DDX_Text(pDX, IDC_EDIT2, b);

DDX_Text(pDX, IDC_EDIT3, c);

}

 

 

BEGIN_MESSAGE_MAP(CDlg, CDialog)

ON_BN_CLICKED(IDOK, &CDlg::OnBnClickedOk)

END_MESSAGE_MAP()

 

 

// CDlg message handlers

 

 

void CDlg::OnBnClickedOk()

{

// TODO: Add your control notification handler code here

UpdateData(true);

CDialog::OnOK();

}

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.