单文档中画直线

之前需要将单文档分成两个框

1.给对话框添加四个编辑框和一个按钮。右键单击编辑框,添加变量,类别为value,类型double,变量名m_startlinex。
2.在类视图中,对话框类中右键在对话框头文件中添加函数OnDrawline,同时在对话框头文件中添加 double Line[2][2]
3.在对话框.cpp文件中加入#include "MainFrm.h"
#include "rView.h"
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为将单文档分为两部分时的对象
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]);
}
}

}



猜你喜欢

转载自blog.csdn.net/qq_27931977/article/details/79705087