创建纯色画刷、位图画刷填充

// 0. 大背景
	HBRUSH hBrushBack = ::CreateSolidBrush(RGB(0, 0, 255));
	HBRUSH hBrushOld = (HBRUSH)pDC->SelectObject(hBrushBack);

	POINT ptArrayBack[4];
	ptArrayBack[0].x = 0;
	ptArrayBack[0].y = 0;
	ptArrayBack[1].x = 0;
	ptArrayBack[1].y = 1000;
	ptArrayBack[2].x = 1000;
	ptArrayBack[2].y = 1000;
	ptArrayBack[3].x = 1000;
	ptArrayBack[3].y = 0;
	pDC->Polygon(ptArrayBack, 4);

	pDC->SelectObject(hBrushOld);
	::DeleteObject(ptArrayBack);


	// 1. 填充
	HBRUSH hBrush = ::CreateSolidBrush(RGB(255, 0, 0));
	hBrushOld = (HBRUSH)pDC->SelectObject(hBrush);

	POINT ptArray[4];
	ptArray[0].x = 10;
	ptArray[0].y = 10;
	ptArray[1].x = 10;
	ptArray[1].y = 100;
	ptArray[2].x = 100;
	ptArray[2].y = 100;
	ptArray[3].x = 100;
	ptArray[3].y = 10;
	pDC->Polygon(ptArray, 4);

	pDC->SelectObject(hBrushOld);
	::DeleteObject(hBrush);

	// 2. 位图画刷
	DWORD dwColorbk = pDC->GetBkColor();
	pDC->CDC::SetROP2(R2_XORPEN);

	pDC->SetBkColor(RGB(255, 255, 255));
	pDC->SetBkMode(TRANSPARENT);
	static BYTE bits[] = { 0xAA,0,0x44,0,0xAA,0,0x11,0,0xAA,0,0x44,0,0xAA,0,0x11,0 };
	HBITMAP hBitmap;
	static BITMAP bitmap = { 0,8,8,2,1,1 };
	bitmap.bmBits = (PSTR)bits;

	hBitmap = ::CreateBitmapIndirect(&bitmap);

	HBRUSH hBrHighlight = ::CreatePatternBrush(hBitmap);
	hBrushOld = (HBRUSH)pDC->SelectObject(hBrHighlight);

	HGDIOBJ hNULL = GetStockObject(NULL_PEN);
	HGDIOBJ hPenOld = (HGDIOBJ)pDC->SelectObject(hNULL);

	pDC->SetTextColor(RGB(255, 0, 0));

	

	POINT ptArray2[4];
	ptArray2[0].x = 200;
	ptArray2[0].y = 10;
	ptArray2[1].x = 200;
	ptArray2[1].y = 100;
	ptArray2[2].x = 300;
	ptArray2[2].y = 100;
	ptArray2[3].x = 300;
	ptArray2[3].y = 10;
	pDC->Polygon(ptArray, 4);
	pDC->Polygon(ptArray2, 4);

	pDC->SelectObject(hPenOld);
	/*::DeleteObject(hPen);*/
	pDC->SelectObject(hBrushOld);
	::DeleteObject(hBrHighlight);

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值