單文件中畫直線
阿新 • • 發佈:2018-11-01
之前需要將單文件分成兩個框
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]);
}
}
}
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為將單文件分為兩部分時的物件
}