MFC DrawTest

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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值