MFC多文件視窗的靜態分割和座標軸的繪製

2021-06-07 08:01:38 字數 1518 閱讀 5605

在class cchildframe : public cmdichildwnd下新增變數

protected:

csplitterwnd m_wndsplitter; //分割線

新建兩個基於cview的類cvalueview,cvarityview

新增oncreateclient函式

bool cchildframe::oncreateclient(lpcreatestruct lpcs, ccreatecontext* pcontext)

好了視窗分割完成

現在在cvalueview中繪製座標軸和網格

新增變數和宣告函式

protected:

void drawgrid(cdc *dcmem);       //畫網格

void drawcoordinate(cdc *dcmem); //畫座標

private:

crect m_rect; //儲存客戶區域

void cvalueview::oninitialupdate()

//繪製座標系統

void cvalueview::drawcoordinate(cdc *dcmem)

dcmem->moveto(30, i);

dcmem->lineto(m_rect.width(), i);

}*///最頂部橫線

/* dcmem->moveto(30, 10);

dcmem->lineto(m_rect.width(), 10);

//最底部橫線

dcmem->moveto(30, m_rect.height()-20);

dcmem->lineto(m_rect.width(), m_rect.height()-20);*/

for (i = 10; i < (uint)m_rect.height()-30; i += (m_rect.height()-30)/10)  //水平線

*/dcmem->moveto(30, i);

dcmem->lineto(m_rect.width()-5, i);

//最底部橫線不在迴圈內

dcmem->moveto(30, m_rect.height()-20);

dcmem->lineto(m_rect.width()-5, m_rect.height()-20);

}//垂直線

for (i = m_rect.width()-5; i > 100; i -= 100) //vertical

dcmem->selectobject(poldpen);

void cvalueview::onsize(uint ntype, int cx, int cy)

void cvalueview::ondraw(cdc* pdc)

bool cvalueview::onerasebkgnd(cdc* pdc)

最後的效果圖:

MFC單文件分割視窗

建立單文件程式 新建兩個對話方塊,用於分割視窗,對話方塊的style屬性改為child,border屬性改為none,最開始沒有改這個,程式執行的時候報錯了。將兩個對話方塊生成從cformview派生的類。在cmainframe中新增兩個成員變數,型別為csplitterwnd,如下所示 cspli...

單文件mfc視窗分割

說明 第一次發表部落格,全當為自己學習做個記錄,將自己的學習新東西和bug整理記錄,方便自己日後的學習。內容有借鑑別人的地方,結尾均附上別人的鏈結。1 新建單文件專案,生成如下幾個類 2 在mainfrm。h檔案中新增如下 csplitterwnd m splitwnd1 csplitterwnd ...

MFC 多文件 分隔視窗

網上的很多 和部落格都是單文件的分隔視窗。我這裡是多文件下分隔視窗的 bool cchildframe oncreateclient lpcreatestruct lpcs,ccreatecontext pcontext 建立左邊窗格中的檢視 if m wndsplitter.createview ...