这里的brush初始化如下:
CBrush brush;
brush.CreateStockObject(WHITE_BRUSH);
这样结果是一个白背景的画布,我现在想得到一个透明背景的画布,能做到么?怎么做
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
dc.FillRect(&Rect,pBrush);
好像没效果。
10 个解决方案
#1
还有这个,资源需要回收吗,怎么回收
#2
奇葩,正宗的
#3
有什么好办法不?
#4
自己学会百度吧,透明画刷
#5
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
dc->SelectObject(pBrush);
dc.FillRect(&Rect,pBrush);
#6
所谓透明画刷
就是空画刷
也就是啥也没有
也就是画的时候啥都不做
就是空画刷
也就是啥也没有
也就是画的时候啥都不做
#7
我就是不想要白色背景。该怎么弄个透明的兼容dc呢
#8
不要白色,你可以要其他颜色啊
你的描述不清楚
你最好把你要的效果图用PHOTOSHOP先处理个样板发上来
才知道怎么帮你
你的描述不清楚
你最好把你要的效果图用PHOTOSHOP先处理个样板发上来
才知道怎么帮你
#9
mfc 程序。一个绘图的程序,绘图背景用pic控件贴图,setbitmap设置背景图片 showwindow控制隐藏显示。 要求在两个场景可以分别绘图,在切换场景的时候能分别把刚才在此场景绘制过的图形显示出来。因此就需要两个兼容dc做一个双缓冲机制,而我做的切换动作时先showwindow显示背景,再贴兼容dc画过的内容,这样,兼容dc的画刷如果是白色,那就全把背景覆盖掉了。
就是这样;
就是这样;
#10
你的思路严重的有问题
既然,你的背景只是一幅图片
那么,为什么要用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通知窗口重画
}
既然,你的背景只是一幅图片
那么,为什么要用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通知窗口重画
}
#1
还有这个,资源需要回收吗,怎么回收
#2
奇葩,正宗的
#3
有什么好办法不?
#4
自己学会百度吧,透明画刷
#5
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
dc->SelectObject(pBrush);
dc.FillRect(&Rect,pBrush);
#6
所谓透明画刷
就是空画刷
也就是啥也没有
也就是画的时候啥都不做
就是空画刷
也就是啥也没有
也就是画的时候啥都不做
#7
我就是不想要白色背景。该怎么弄个透明的兼容dc呢
#8
不要白色,你可以要其他颜色啊
你的描述不清楚
你最好把你要的效果图用PHOTOSHOP先处理个样板发上来
才知道怎么帮你
你的描述不清楚
你最好把你要的效果图用PHOTOSHOP先处理个样板发上来
才知道怎么帮你
#9
mfc 程序。一个绘图的程序,绘图背景用pic控件贴图,setbitmap设置背景图片 showwindow控制隐藏显示。 要求在两个场景可以分别绘图,在切换场景的时候能分别把刚才在此场景绘制过的图形显示出来。因此就需要两个兼容dc做一个双缓冲机制,而我做的切换动作时先showwindow显示背景,再贴兼容dc画过的内容,这样,兼容dc的画刷如果是白色,那就全把背景覆盖掉了。
就是这样;
就是这样;
#10
你的思路严重的有问题
既然,你的背景只是一幅图片
那么,为什么要用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通知窗口重画
}
既然,你的背景只是一幅图片
那么,为什么要用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通知窗口重画
}