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為將單文件分為兩部分時的物件
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]); } }
}