更换背景颜色,是用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。
函数原型: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。