当前位置:C++技术网 > 资讯 > 如何为自定义的按钮控件填充颜色或是铺上图片

如何为自定义的按钮控件填充颜色或是铺上图片

更新时间:2016-05-06 21:08:39浏览次数:1+次

对于本文,请你看看相关的文章《SelectClipRgn函数实现在不规则区域上绘制图形》。不过在本文中,我并没有用到SelectClipRgn函数,为什么?很简单,因为,我是在自定义的按钮类中填充按钮的。如果我是在对话框类中填充处理按钮的界面的话,就需要用到SelectClipRgn函数了。先看看实现:

/*//第一种填充图片的方法
	CBitmap bmp;
	bmp.LoadBitmapW(IDB_BITMAP2);
	CBrush brush;
	brush.CreatePatternBrush(&bmp);

	HRGN r=CreateRectRgn(0,0,0,0);
	GetWindowRgn(r);

	CRgn rgn;
	rgn.Attach(r);
	pDC->FillRgn(&rgn,&brush);
	rgn.Detach();
	brush.DeleteObject();*///

	//第二种填充颜色的方法

	CBrush brush(RGB(0,255,255));
	HRGN r=CreateRectRgn(0,0,0,0);
	GetWindowRgn(r);
	//SelectClipRgn(pDC->GetSafeHdc(),r);
	CBrush *OldBrush=pDC->SelectObject(&brush);
	CRgn rgn;
	rgn.Attach(r);
	pDC->FillRgn(&rgn,&brush);
	pDC->SelectObject(OldBrush);
对于本文的代码,是摘自《VC++实现控件自绘的最简源码剖析》。上面的代码我只是在DrawItem函数中调用DrawButton函数的前面补充的。