更换背景颜色 OnEraseBkgnd,PatBlt 介绍

更换背景颜色,是用brush

 

BOOL CChatView::OnEraseBkgnd(CDC* pDC)
{
 // TODO: Add your message handler code here and/or call default
 
 CBrush brush(RGB(255,255,255));
 CBrush *pOldBrush = pDC->SelectObject(&brush);

 CRect rect;
 GetClientRect(&rect);

 pDC->PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);
 pDC->SelectObject(pOldBrush);

 return TRUE;

 //return CWnd::OnEraseBkgnd(pDC);
}

 

 

 PatBlt()函数的名字其实是一个缩写,全称应该是“图样块传送”(PATtern BLock Transfer, 缩写后就是PatBlt),

从这个名字上看,它好像只是简单的复制画刷(或叫图样),直到填充完指定的矩形之后就结束了,其实这个函数可没有这么简单,它在复制画刷之前,将根据光珊操作码(raster operation,缩写是ROP)来组合图样中的像素与目标DC中相同位置上的像素而形成最终的图像。光珊操作码(ROP)在组合的过程中起到了非常重要的作用,实质上ROP是一种位操作符,一共有256种,PatBlt()函数可以接受那些需要图样和目标位图的ROP。

PatBlt

  函数功能:该函数使用当前选入指定设备环境中的刷子绘制给定的矩形区域。通过使用给出的光栅操作来对该刷子的颜色和表面颜色进行组合。
  函数原型:BOOL PatBlt(HDC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, DWORD dwRop);
  参数:
  hdc:设备环境句柄。
  nXLeft:指定要填充的矩形左上角的X轴坐标,坐标按逻辑单位表示。
  nYLeft:指定要填充的矩形左上角的Y轴坐标,坐标按逻辑单位表示。
  nWidth:指定矩形的宽度,按逻辑单位表示宽度。
  nHeight:指定矩形的高度,按逻辑单位表示高度。
  dwRop:指定光栅操作码。该操作码可以取下列值,这些值的含义如下:
  PATCOPY:将指定的模式拷贝到目标位图中。
  PATINVERT:使用布尔OR(或)操作符将指定模式的颜色与目标矩形的颜色进行组合。
  DSTINVERT:将目标矩形反向。
  BLACKNESS:使用物理调色板中与索引0相关的颜色填充目标矩形。(对于缺省的物理调色板而言,该颜色为黑色)。
  WHITENESS:使用物理调色板中与索引1有关的颜色来填充目标矩形。(对于缺省的物理调色板而言,该颜色为白色)。
  返回值:如果函数执行成功,则返回值为非零;如果函数执行失败,则返回值为0。
  Windows NT:若想获得更多错误信息,请调用GetLastError函数。
  备注:该函数的参数dwRop取值限定为全部256个三元光栅操作有限子集。特别地,涉及源矩形的操作码不能使用。
  并非所有设备都支持PalBlt函数。有关更多的信息,请参考函数GetDeviceCaps中有关RC_BITBLT特性的描述。
  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h:库文件:gdi32.lib。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值