browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

有关背景画刷

Posted by on 2009 年 10 月 16 日

你可以任意转载本文,但请在转载后的文章中注明作者和原始链接。
媒体约稿请联系 titilima_AT_163.com(把“_AT_”换成“@”)。

先从两行代码开始吧:

1
2
3
4
// 1
FillRect(hdc, rect, (HBRUSH)GetStockObject(WHITE_BRUSH));
// 2
FillRect(hdc, rect, (HBRUSH)(COLOR_WINDOW + 1));

它们的区别很显而易见,第一行代码是使用白画刷来填充 DC,第二行代码则是用窗口画刷来填充 DC 的。
虽然它们是有区别的,但是如果当前的窗口画刷是白色画刷的时候,就容易产生问题。——因为在这种情况下,这两行代码达到的效果是一样的,那么很容易用错。
当然,用错也就罢了,大不了将错就错——我的窗口本来就是白的,这总行了吧?
用错不是问题,但混用的话问题就大了。有图为证,Foxmail 6.5 的“远程管理”视图。

不用我多解释了,这个自绘的列表视图混用了两个背景画刷,一个是他自己的 WHITE_BRUSH,另一个是系统的 COLOR_WINDOW。
除应用程序外,网页的设计者们也应注意这个问题,下图是网易邮箱首页的页面。

订阅本站

一条评论

  • At 2009.10.19 13:44, 战雨灾 said:

    记得好像在百度还是Google上也看到过这种效果。
    —-
    验证码~~~

    (Required)
    (Required, will not be published)