之前需要将单文档分成两个框
1.给对话框添加四个编辑框和一个按钮。右键单击编辑框,添加变量,类别为value,类型double,变量名m_startlinex。
2.在类视图中,对话框类中右键在对话框头文件中添加函数OnDrawline,同时在对话框头文件中添加 double Line[2][2]
3.在对话框.cpp文件中加入#include "MainFrm.h"
#include "rView.h"
![](https://i-blog.csdnimg.cn/blog_migrate/c10e2412f6843d747baa11f6ce7b1312.png)
void CP1::OnDrawline(void)
{
UpdateData(true);
CMainFrame* pMainFrame = (CMainFrame*)GetParentFrame();
CrView* pView = (CrView*)(pMainFrame)->Splitter.GetPane(0,1);
Line[0][0]=m_startlinex;
Line[0][1]=m_startliney;
Line[1][0]=m_endlinex;
Line[1][1]=m_endliney;
pView->DrawShape(Line,1);
UpdateData(false);
}
其中Splitter为将单文档分为两部分时的对象
![](https://i-blog.csdnimg.cn/blog_migrate/812cb1fa897c5bd4578a973226cdf7ca.png)
4.在rView.h(单文档名称)中添加 void DrawShape(double V[][2],int linenum);
5.在.cpp中添加
void CrView::DrawShape(double V[][2],int linenum)
{
//RedrawWindow();
CClientDC dc(this);
CPen pen,*ppen;
CRect rclient;
pen.CreatePen(PS_SOLID,1,RGB(255,0,0));
ppen = dc.SelectObject(&pen);
if(linenum==1)
{
dc.MoveTo(V[0][0],V[0][1]);
dc.LineTo(V[1][0],V[1][1]);
}
else
for(int i=0;i<linenum;i++)
{
if(i==linenum-1)
{
dc.MoveTo(V[i][0],V[i][1]);
dc.LineTo(V[0][0],V[0][1]);
}
else
{
dc.MoveTo(V[i][0],V[i][1]);
dc.LineTo(V[i+1][0],V[i+1][1]);
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/d8dac5229c7541b796f3db0bb411d8bd.png)