Ejemplo n.º 1
0
void CEx_DrawView::OnDraw(CDC* pDC)
{
	// TODO: add draw code for native data here
    CEx_DrawDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    m_bufferDC.BitBlt(0, 0, m_size.cx, m_size.cy, pDC, 0, 0, WHITENESS);
    DrawGraphic(&m_bufferDC);
    if (pDoc->m_sel != -1)
    {
		ASSERT(pDoc->m_sel >= 0 && pDoc->m_sel < pDoc->m_obArray.GetSize());
        CGraphic* P = Convert_To_Graphic(pDoc->m_obArray[pDoc->m_sel]);
		ASSERT_VALID(P);
        P->Draw(&m_bufferDC);
        m_bufferDC.SelectObject(GetStockObject(WHITE_BRUSH));
        P->DrawSelectedEdge(&m_bufferDC);
        if (pDoc->m_bShowTab)
        {
            CString str;
            int bkMode = m_bufferDC.SetBkMode(TRANSPARENT);
            str.Format(_T("%d"), pDoc->m_sel);
            m_bufferDC.SelectObject(&m_tabFont);
            m_bufferDC.TextOut(P->m_pt1.x, P->m_pt1.y, str);
        }
    }
    pDC->BitBlt(0, 0, m_size.cx, m_size.cy, &m_bufferDC, 0, 0, SRCCOPY);
}