}
}
}
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作
SetIcon(m_hIcon, TRUE);
// 设置大图标
SetIcon(m_hIcon, FALSE);
// 设置小图标
// TODO: 在此添加额外的初始化代码 start=false;
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
void CchazhiDlg::OnSysCommand(UINT nID, LPARAM lParam) { }
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。
void CchazhiDlg::OnPaint() {
start = true; drawxy(); xy.n = -1;
for (int i = 0; i<20; i++) { }
if (IsIconic()) {
CPaintDC dc(this); // 用于绘制的设备上下文 xy.x[i] = 0; xy.y[i] = 0;
if ((nID & 0xFFF0) == IDM_ABOUTBOX) { } else { }
CDialogEx::OnSysCommand(nID, lParam); CAboutDlg dlgAbout; dlgAbout.DoModal();
16
}
//当用户拖动最小化窗口时系统调用此函数取得光标 //显示。
HCURSOR CchazhiDlg::OnQueryDragIcon() { }
void CchazhiDlg::OnBnClickedButton1() {
if(start){
CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC();
CPen pen(PS_SOLID,2,RGB(255,0,0)); pDC->SelectObject(&pen);
pDC->MoveTo(int(uchangex(xy.x[0])),int (uchangey((xy.y[0])))); for(int x=int(xy.x[0]);x<=xy.x[xy.n];x++){ double result=0;
for(int i=0;i<=xy.n;i++){ }
pDC->LineTo(int(uchangex(x)),int (uchangey(result))); Sleep(10);
result+=l(x,i,xy.n,xy)*xy.y[i]; return static_cast
CDialogEx::OnPaint(); // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
// 使图标在工作区矩形中居中
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;
SendMessage(WM_ICONERASEBKGND, reinterpret_cast
17
}
}
pwnd->ReleaseDC(pDC); }
// TODO: 在此添加控件通知处理程序代码
void CchazhiDlg::OnBnClickedButton4() { }
void drawxy(){ }
double changex(double x){ }
double uchangex(double x){ return x+350; }
double changey(double y){ }
return -y+180; return x-350;
CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC(); pDC->MoveTo(120,180); pDC->LineTo(600,180); pDC->LineTo(594,174); pDC->MoveTo(600,180); pDC->LineTo(594,186); pDC->MoveTo(350,380); pDC->LineTo(350,0); pDC->LineTo(356,6); pDC->MoveTo(350,0); pDC->LineTo(344,6); pDC->MoveTo(120,0); pDC->TextOutA(355,0,\); pDC->TextOutA(590,182,\); pwnd->ReleaseDC(pDC);
// TODO: 在此添加控件通知处理程序代码
// pDC->TextOutA(340,185,\
18
double uchangey(double y){ return -y+180; }
void CchazhiDlg::OnLButtonDown(UINT nFlags, CPoint point) { }
double l(double xv,int i,int n,date xy) {
double t=1;
for(int j=0;j<=n;j++) if(j!=i)
t=t*(xv-xy.x[j])/(xy.x[i]-xy.x[j]); return t;
}
CDialogEx::OnLButtonDown(nFlags, point);
}
temp=xy.y[j]; xy.y[j]=xy.y[j+1]; xy.y[j+1]=temp; }
for(int i=0;i for(int j=0;j if(xy.x[j]>xy.x[j+1]){ double temp=0; temp=xy.x[j]; xy.x[j]=xy.x[j+1]; xy.x[j+1]=temp; // TODO: 在此添加消息处理程序代码和/或调用默认值 CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC(); if(start){ } if(point.x>120&&point.x<600&&point.y>0&&point.y<380){ pDC->Ellipse(point.x-2,point.y-2,point.x+2,point.y+2); xy.n++; xy.x[xy.n]=changex(double (point.x)); xy.y[xy.n]=changey(double (point.y)); } 19 } void CchazhiDlg::OnBnClickedButton2() { for(int i=xy.x[0];i<=xy.x[xy.n];i++){ } pwnd->ReleaseDC(pDC); } double result=0; for(int j=0;j<=xy.n;j++){ } pDC->LineTo(int ( uchangex(i)),int (uchangey(result))); Sleep(10); double temp=1; for(int k=0;k temp*=(i-xy.x[k]); for(int j=1;j<=xy.n;j++){ } for(int i=j;i<=xy.n;i++) chashang[i][j]=(chashang[i][j-1]-chashang[i-1][j-1])/(xy.x[i]-xy.x[i-j]); for(int i=0;i<=xy.n;i++){ } chashang[i][0]=xy.y[i]; chashang=new double *[20]; for(int i=0;i<20;i++){ chashang[i]=new double [20]; for(int j=0;j<20;j++){ chashang[i][j]=0; } } if(start){ CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC(); CPen pen(PS_SOLID,2,RGB(0,0,0)); pDC->SelectObject(&pen); pDC->MoveTo(int(uchangex(xy.x[0])),int (uchangey((xy.y[0])))); double **chashang; result+=chashang[j][j]*temp; 20