//重画消息
VOID CServerItemView::OnPaint()
{
	CPaintDC dc(this);

	//剪切位置
	CRect rcClip;
	dc.GetClipBox(&rcClip);

	//获取位置
	CRect rcClient;
	GetClientRect(&rcClient);

	//创建缓冲
	CDC BufferDC;
	CBitmap BufferImage;
	BufferDC.CreateCompatibleDC(&dc);
	BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());

	//设置 DC
	BufferDC.SelectObject(&BufferImage);

	//绘画控件
	DrawTreeBack(&BufferDC,rcClient,rcClip);
	DrawTreeItem(&BufferDC,rcClient,rcClip);

	//绘画背景
	dc.BitBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),&BufferDC,rcClip.left,rcClip.top,SRCCOPY);

	//删除资源
	BufferDC.DeleteDC();
	BufferImage.DeleteObject();

	return;
}
Пример #2
0
 void SMCTreeCtrl::DrawItem(IRenderTarget *pRT, CRect & rc, HSTREEITEM hItem)
 {
     CRect rcTreeItem = rc;
     rcTreeItem.right = rcTreeItem.left + m_nTreeWidth;
     DrawTreeItem(pRT,rcTreeItem,hItem);
     
     CRect rcListItem = rc;
     rcListItem.left = rcTreeItem.right;
     DrawListItem(pRT,rcListItem,hItem);
 }
Пример #3
0
void CEasySkinTreeCtrl::OnPaint()
{
	CPaintDC dc(this); // device context for painting
	
	//获取位置
	CRect rcClient;
	GetClientRect(&rcClient);

	CMemoryDC BufferDC(&dc,rcClient);

	//剪切位置
	CRect rcClipBox;
	BufferDC.GetClipBox(&rcClipBox);

	//绘制背景
	BufferDC.FillSolidRect(rcClient,m_colBack);
	DrawParentWndBg(GetSafeHwnd(),BufferDC->GetSafeHdc());

	DrawTreeItem(&BufferDC,rcClient,rcClipBox);
}