背景色与WM_ERASEBKGND

Posted on 2018-09-03 11:52  moisiet  阅读(497)  评论(0编辑  收藏  举报

1.背景模式

SetBkMode(TRANSPARENT/OPACITY)

用来反应文字,图形与窗口背景交互混合模式。透明则表示文字背景与窗口背景之间透明,互不干扰。

2.背景颜色

SetBkColor(RGB())

背景颜色不是指窗口的背景颜色,而是文字背景色,或者虚线间隙颜色。想要改变窗口背景色用FillRect()函数。

3.OnEraseBkgnd(CDC* pDC)

在响应WM_PAINT之前调用该函数

响应WM_ERASEBKGND消息,默认是用在WINCLASS中hbrBackground参数的颜色填充窗口背景色。

如果重载的化,最后return TRUE表示背景已经擦除,后续不会再用hbrBackground参数填充,否则就要填充。

通常在此函数内部可以改变客户端背景色和写入文字。必须返回TRUE.

4.CWnd::Invalidate(bErase)

该函数会产生WM_PAINT消息引起窗口客户区重绘。bErase为TRUE,表示会产生WM_ERASEBKGND消息,引起

背景擦除。如果未FALSE的化就不会产生该消息。