不懂就问:NULL_BRUSH 空刷子的作用是什么

yyds2022 2009-08-26 01:37:28

如题, 如题。
...全文
530 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
空也
taiyang631 2009-08-26
  • 打赏
  • 举报
回复
所绘图形内部 不填充
luobonic 2009-08-26
  • 打赏
  • 举报
回复
空刷子的作用是不绘制背景色。
举个例子,你想要输出一些文字,如果是黑色画刷,则下次输出的文字(在原来的矩形位置)会完全看不到上次的结果,如果用空画刷,则会直接画到原来的dc上,如果文字不一样,你会看到两次文字重叠在一起。
空画刷是很有用的,一般我们的绘制不那么简单,所以我们希望在一次的绘制中统一刷掉背景,然后再依次绘制我们想要的内容,最后拷到屏幕上去。
注意,空画刷没有这种作用:对窗口dc涂空画刷,希望得到一个“透明”窗口。半透明窗口要么自己取其他窗口的dc自己混色,要么使用windows分层窗口api,没有其他更便利的办法。
jvy 2009-08-26
  • 打赏
  • 举报
回复
打开你的画图程序,里面画圆及矩形时会有不同选择,画一下看有啥区别
wu_qing_yun 2009-08-26
  • 打赏
  • 举报
回复
HBRUSH CGenerateAISPackageDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CWQYDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: 在此更改 DC 的任何属性
if (nCtlColor == CTLCOLOR_STATIC )
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255,255));
return (HBRUSH)GetStockObject(NULL_BRUSH);
}

// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}


这是其中的一种用法, 使Lable 的背景为透明色
  • 打赏
  • 举报
回复
就是什么都不画
youyifang 2009-08-26
  • 打赏
  • 举报
回复
如果你要用这个刷子绘制东西的时候,不会绘制.
ljz888666555 2009-08-26
  • 打赏
  • 举报
回复
就是一个空画刷,我知道有一个NULL_PEN的用法,就是可以画无边框的图形。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧