OnDraw

空CSFCView :: OnDraw(CDC * pDCの)
{
返す//;
CSFCDoc * PDOC =のgetDocument();
ASSERT_VALID(PDOC)。

(m_pPrgInfo == NULL)の場合
、戻り;

(もし!g_PrjMg.GetShowType()= SHOW_EDIT)
{
CSIZE CZ = m_sizeTotal。
cz.cx * = m_fRate。
cz.cy * = m_fRate。
SetScrollSizes(MM_TEXT、CZ)。
}

m_ScrollSize.cx = GetScrollPos(SB_HORZ)。
m_ScrollSize.cy = GetScrollPos(SB_VERT)。

CRect RT;
GetClientRect(RT)。
m_ClientRect.CopyRect(RT)。
CBitmap * PMB。
CDC * GDC = GetDC();
INT IWIDTH =(FLOAT)rt.Width()/ m_fRate。
INT IHEIGHT =(FLOAT)rt.Height()/ m_fRate。
(!GDCは== NULL || m_Bitmap.CreateCompatibleBitmap(GDC、IWIDTH、IHEIGHT))であれば
{
返します。
}

IF(m_MainDC.m_hDC == NULL)
{
IF(m_MainDC.CreateCompatibleDC(GDC)!)
{
返します。
}
}
PMB = m_MainDC.SelectObject(&m_Bitmap)。
CBrushブラシ(RGB(255,255,255))。
m_MainDC.FillRect(CRect(0、0、IWIDTH、IHEIGHT)、およびブラシ)。
m_Bitmap.DeleteObject();
brush.DeleteObject();
ReleaseDCの(GDC)。
m_pPrgInfo-> m_GraphMg.SetScrollSize(CSIZE((フロート)m_ScrollSize.cx/m_fRate、(フロート)m_ScrollSize.cy/m_fRate))。
m_pPrgInfo-> m_GraphMg.Draw(&m_MainDC)。

(!m_bLDown && m_ElemType == SGT_LINE && m_pPrgInfo = NULL)であれば
{
m_pPrgInfo-> m_GraphMg.DrawLine(&m_MainDC、m_HitPt、m_ptEnd)。
}

//リフレッシュ背景色は白である
。pDC-> FillSolidRect(CRect(0、0、rt.Width()、rt.Height())、RGB(255,255,255))

pDC-> StretchBlt(
m_ScrollSize.cx、
m_ScrollSize.cy、
rt.Width()、
rt.Height()、
&m_MainDC、
0、
0、
IWIDTH、
IHEIGHT、
SRCCOPY)。

}

おすすめ

転載: www.cnblogs.com/ShiShouTHS/p/11563872.html