基于MFC的逐点比较法直线法插补教程.docx

上传人:b****3 文档编号:507210 上传时间:2022-10-10 格式:DOCX 页数:10 大小:68.03KB
下载 相关 举报
基于MFC的逐点比较法直线法插补教程.docx_第1页
第1页 / 共10页
基于MFC的逐点比较法直线法插补教程.docx_第2页
第2页 / 共10页
基于MFC的逐点比较法直线法插补教程.docx_第3页
第3页 / 共10页
基于MFC的逐点比较法直线法插补教程.docx_第4页
第4页 / 共10页
基于MFC的逐点比较法直线法插补教程.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

基于MFC的逐点比较法直线法插补教程.docx

《基于MFC的逐点比较法直线法插补教程.docx》由会员分享,可在线阅读,更多相关《基于MFC的逐点比较法直线法插补教程.docx(10页珍藏版)》请在冰豆网上搜索。

基于MFC的逐点比较法直线法插补教程.docx

基于MFC的逐点比较法直线法插补教程

1.这是程序最终运行结果的示意图:

2.编辑如下

3.全部代码如下:

#include"stdafx.h"

#include"逐点比较法直线插补1.h"

#include"逐点比较法直线插补1Dlg.h"

CWnd*pWnd;

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CAboutDlgdialogusedforAppAbout

classCAboutDlg:

publicCDialog

{

public:

CAboutDlg();

//DialogData

//{{AFX_DATA(CAboutDlg)

enum{IDD=IDD_ABOUTBOX};

//}}AFX_DATA

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CAboutDlg)

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport

//}}AFX_VIRTUAL

//Implementation

protected:

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

CAboutDlg:

:

CAboutDlg():

CDialog(CAboutDlg:

:

IDD)

{

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDlg)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

//Nomessagehandlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CMy1Dlgdialog

CMy1Dlg:

:

CMy1Dlg(CWnd*pParent/*=NULL*/)

:

CDialog(CMy1Dlg:

:

IDD,pParent)

{

//{{AFX_DATA_INIT(CMy1Dlg)

m_x=0.0;

m_y=0.0;

m_x0=0;

m_y0=0;

//}}AFX_DATA_INIT

//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32

m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

voidCMy1Dlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMy1Dlg)

DDX_Text(pDX,IDC_EDIT1,m_x);

DDV_MinMaxDouble(pDX,m_x,0.,10.);

DDX_Text(pDX,IDC_EDIT2,m_y);

DDV_MinMaxDouble(pDX,m_y,0.,10.);

DDX_Text(pDX,IDC_EDIT3,m_x0);

DDV_MinMaxInt(pDX,m_x0,0,10);

DDX_Text(pDX,IDC_EDIT4,m_y0);

DDV_MinMaxInt(pDX,m_y0,0,10);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CMy1Dlg,CDialog)

//{{AFX_MSG_MAP(CMy1Dlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1,OnButton1)

ON_BN_CLICKED(IDC_BUTTON2,OnButton2)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CMy1Dlgmessagehandlers

BOOLCMy1Dlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

pWnd=GetDlgItem(IDC_MYSTATIC);

//Add"About..."menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.

ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

{

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if(!

strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}

}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically

//whentheapplication'smainwindowisnotadialog

SetIcon(m_hIcon,TRUE);//Setbigicon

SetIcon(m_hIcon,FALSE);//Setsmallicon

//TODO:

Addextrainitializationhere

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

voidCMy1Dlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

{

if((nID&0xFFF0)==IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog:

:

OnSysCommand(nID,lParam);

}

}

//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow

//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,

//thisisautomaticallydoneforyoubytheframework.

voidCMy1Dlg:

:

OnPaint()

{

if(a==1)

{

CPaintDCdc(this);//devicecontextforpainting

CStringstr;

inti,j;

intx,y;

//强制更新绘图,不可少,否则绘图会出错

//使static控件区域无效

pWnd->Invalidate();

//更新窗口,此时才真正向系统发送重绘消息,没有这句你可以试下,绝对出问题

pWnd->UpdateWindow();

CDC*pDC=pWnd->GetDC();//获取控件的CDC指针

pDC->Rectangle(0,0,380,390);//画一个矩形框

CPen*pPenRed=newCPen();//创建画笔对象

pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));//红色画笔

CPen*pPen=NULL;

//选中当前红色画笔,并保存以前的画笔

CGdiObject*pOldPen=pDC->SelectObject(pPenRed);

pDC->MoveTo(20,20);//绘制坐标轴

pDC->LineTo(20,360);//竖起轴

pDC->LineTo(360,360);//水平轴

//写X轴刻度值

for(i=0;i<=10;i++)

{

str.Format("%d",i);

pDC->TextOut(17+30*i,365,str);

//绘制X轴刻度

pDC->MoveTo(i*30+20,360);

pDC->LineTo(i*30+20,355);

}

//写Y轴刻度值

for(i=1;i<=10;i++)

{

str.Format("%d",i);

pDC->TextOut(2,360-30*i-5,str);

//绘制Y轴刻度

pDC->MoveTo(25,360-30*i);

pDC->LineTo(20,360-30*i);

}

//绘制X箭头

pDC->MoveTo(350,357);

pDC->LineTo(360,360);

pDC->LineTo(350,363);

//绘制Y箭头

pDC->MoveTo(17,30);

pDC->LineTo(20,20);//绘制左边箭头

pDC->LineTo(23,30);//绘制右边箭头

pDC->MoveTo(xi,yi);

pDC->LineTo(xe,ye);

//恢复以前的画笔

pDC->SelectObject(pOldPen);

//逐点比较法直线插补

while(sum>0)

{

if(F>=0)

{

F=F-m_y+m_y0;

pDC->Mov

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1