创建自己的画刷

绘制填充区域:Windows提供了7个函数:

函数名称图形
Rectangle直角矩形
Ellipse椭圆
RoundRect圆角矩形
Chord一个弓形
Pie扇形
Polygon多边形
PolyPolygon多个多边形

使用画刷的方法很多,下面罗列一些常见的:

方法1

HBRUSH hbrush;
hbrush=GetStockObject(hdc,hbrush);
SelectObject(hdc,hbrush);
SelectObject(hdc,GetStockObject(NULL_BRUSH));//不需要填充
SelectObject(hdc,GetStockObject(NULL_PEN));//不需要边框线


方法2

hbrush=CreateSolidBrush(crColor);
SelectObject(hdc,hbrush);
//crColor可以用RGB生成


方法3

hbrush=CreateHatchBrush(iHatchStyle,crColor);
SelectObject(hdc,hbrush);//iHatchStyle可以选择的参数如下://可以使用SetBkColor,SetBkMode来填充线与线之间的空白。


方法4

使用:
CreatePatternBrush和CreateDIBPatternBrushPt来建立自己的位图


方法5

LOGBRUSH logbrush;
hbrush=CreateBrushIndirect(&logbrush);

下面看看代码,看看效果图:

case WM_PAINT:
			hdc=BeginPaint(hwnd,&ps);
			//GetClientRect(hwnd,&rect);
			
			
			hbrush=(HBRUSH)GetStockObject(GRAY_BRUSH);
			SelectObject(hdc,hbrush);
			//SelectObject(hdc,GetStockObject(NULL_PEN));
			Ellipse(hdc,500,500,300,200);

			hbrush=CreateSolidBrush(RGB(255,0,0));
			SelectObject(hdc,hbrush);
			Rectangle(hdc,0,0,100,100);

			hbrush=(HBRUSH)GetStockObject(LTGRAY_BRUSH);
			SelectObject(hdc,hbrush);
			Rectangle(hdc,100,100,200,200);

			SetBkMode(hdc,OPAQUE);
			SetBkColor(hdc,RGB(255,0,0));
			hbrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,255,0));
			SelectObject(hdc,hbrush);
			Rectangle(hdc,200,200,300,300);

		
			/*hbrush=(HBRUSH)CreateBrushIndirect(&logbrush);
			SelectObject(hdc,hbrush);
			Rectangle(hdc,200,200,300,300);*/


			EndPaint(hwnd,&ps);
			return 0;
case WM_DESTROY:
		
			
			PostQuitMessage(0);
			return 0;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值