mfc背景填充,透明画刷可以填充么

渐暖的冬夜 2013-12-30 12:04:35
如题,我想做一个清除的功能,用dc.FillRect(&rect,&brush);
这里的brush初始化如下:

CBrush brush;
brush.CreateStockObject(WHITE_BRUSH);

这样结果是一个白背景的画布,我现在想得到一个透明背景的画布,能做到么?怎么做

CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
dc.FillRect(&Rect,pBrush);
好像没效果。
...全文
355 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
渐暖的冬夜 2014-01-02
  • 打赏
  • 举报
回复
mfc 程序。一个绘图的程序,绘图背景用pic控件贴图,setbitmap设置背景图片 showwindow控制隐藏显示。 要求在两个场景可以分别绘图,在切换场景的时候能分别把刚才在此场景绘制过的图形显示出来。因此就需要两个兼容dc做一个双缓冲机制,而我做的切换动作时先showwindow显示背景,再贴兼容dc画过的内容,这样,兼容dc的画刷如果是白色,那就全把背景覆盖掉了。 就是这样;
gz_qmc 2014-01-02
  • 打赏
  • 举报
回复
你的思路严重的有问题 既然,你的背景只是一幅图片 那么,为什么要用pic控件呢? 如果是我,绝对不用你这种非常不靠谱的做法 比如,绘图窗口是X(绝对不要在X上用另外一个窗口类,那样非常愚蠢) 那么,我会设置一个全局指针变量pic指向对应的背景图 另外有一个数据结构draw保存绘制的图形 在X窗口的OnPaint()里,只需要做两件事情 { 1,显示背景图pic; 2,绘画draw保存的图形; } 而切换场景的代码非常简单 比如 void ChangeBack(int index) { switch(index) { case 0:pic对应到第一幅图;break; case 1:pic对应到第二幅图;break; ......... } Invalidate通知窗口重画 }
gz_qmc 2014-01-01
  • 打赏
  • 举报
回复
不要白色,你可以要其他颜色啊 你的描述不清楚 你最好把你要的效果图用PHOTOSHOP先处理个样板发上来 才知道怎么帮你
渐暖的冬夜 2014-01-01
  • 打赏
  • 举报
回复
引用 6 楼 gz_qmc 的回复:
所谓透明画刷 就是空画刷 也就是啥也没有 也就是画的时候啥都不做
我就是不想要白色背景。该怎么弄个透明的兼容dc呢
渐暖的冬夜 2013-12-30
  • 打赏
  • 举报
回复
引用 2 楼 gz_qmc 的回复:
奇葩,正宗的
有什么好办法不?
gz_qmc 2013-12-30
  • 打赏
  • 举报
回复
奇葩,正宗的
渐暖的冬夜 2013-12-30
  • 打赏
  • 举报
回复
还有这个,资源需要回收吗,怎么回收
gz_qmc 2013-12-30
  • 打赏
  • 举报
回复
所谓透明画刷 就是空画刷 也就是啥也没有 也就是画的时候啥都不做
lyingbo 2013-12-30
  • 打赏
  • 举报
回复
引用 楼主 JianNuanDeDongYe 的回复:
如题,我想做一个清除的功能,用dc.FillRect(&rect,&brush); 这里的brush初始化如下: CBrush brush; brush.CreateStockObject(WHITE_BRUSH); 这样结果是一个白背景的画布,我现在想得到一个透明背景的画布,能做到么?怎么做 CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); dc.FillRect(&Rect,pBrush); 好像没效果。
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
	dc->SelectObject(pBrush);
	dc.FillRect(&Rect,pBrush);
这个娜戒海了 2013-12-30
  • 打赏
  • 举报
回复
自己学会百度吧,透明画刷

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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