void CDrawtsetView::OnDraw(CDC* pDC)
{
CDrawtsetDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
int i, y;
CString s;
TEXTMETRIC tm;
CRect rc, rcClip;
// Set rectangle pen/brushes
CPen pen(PS_SOLID, 1, RGB(164, 164, 164)); // Pen 是用来画线条的
CPen *pOldPen = pDC->SelectObject(&pen);
CBrush brOdd(RGB(164, 255, 255));
CBrush brEven(RGB(255, 255, 255));
CBrush *pOldBrush = pDC->GetCurrentBrush();
pDC->SetTextColor(RGB(255, 0, 0)); // 改变文字的颜色
// Set font
CFont font;
font.CreateStockObject(DEFAULT_GUI_FONT); // 获取一个Windows标准的预定义画笔、画刷或字体的句柄
CFont *pOldFont = pDC->SelectObject(&font);
// Set bkMode
int nBkMode = pDC->SetBkMode(TRANSPARENT);
// Get line height
pDC->GetTextMetrics(&tm);
int nLineHeight = tm.tmHeight + tm.tmExternalLeading;
// Get clipping rectangle
pDC->GetClipBox(&rcClip);
// Draw content
for (i = y = 0; y < rcClip.bottom; i++, y += nLineHeight)
{
s.Format("This is line %d.", i + 1);
rc.SetRect(rcClip.left, y, rcClip.right, y + nLineHeight + 1);
pDC->SelectObject( (i & 1) ? &brOdd : &brEven);
pDC->Rectangle(&rc);
pDC->TextOut(4, y, s, s.GetLength());
}
// restore DC
pDC->SelectObject(pOldBrush);
pDC->SetBkMode(nBkMode);
pDC->SelectObject(&pOldPen);
pDC->SelectObject(&pOldFont);
}
MFC DrawTest
最新推荐文章于 2022-04-09 11:41:13 发布