您的位置:程序门 -> vc/mfc -> 界面



请问如何为透明画刷指定颜色


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请问如何为透明画刷指定颜色[已结贴,结贴人:zoomout]
发表于:2007-08-22 10:30:10 楼主
crect   rc;
m_a.getwindowrect(&rc);
this-> screentoclient(&rc);

cclientdc   dc(this);
cbrush   *   pbruch=cbrush::fromhandle((hbrush)getstockobject(null_brush));

crect   rc2(rc.left   -3,rc.top-3,rc.right+2,rc.bottom+2);

cbrush   *   poldbrush=dc.selectobject(pbruch);
dc.rectangle(rc2);
dc.selectobject(poldbrush);
===================================================

现在画出来的就是一个黑色的框,我想画其他颜色的框该怎么做啊。
发表于:2007-08-22 10:35:081楼 得分:0
crect   rc;
m_a.getwindowrect(&rc);
this-> screentoclient(&rc);

cclientdc   dc(this);
cbrush     bruch(rgb(255,   0,   0));//自己设定rgb值

crect   rc2(rc.left   -3,rc.top-3,rc.right+2,rc.bottom+2);

cbrush   *   poldbrush=dc.selectobject(&bruch);
dc.rectangle(rc2);
dc.selectobject(poldbrush);

这样试一下
发表于:2007-08-22 10:37:012楼 得分:20
cpen   pen(ps_solid,1,rgb(255,0,0));
cpen*   poldpen=dc.selectobject(&pen);
选入pen   ,默认为黑的!!!
发表于:2007-08-22 10:37:393楼 得分:0
cbrush   bruch(rgb(255,   0,   0));//自己设定rgb值

这个不是透明刷子了,就是普通刷子填充一片区域

我要的是中间空心,边缘是红色的透明画刷
发表于:2007-08-22 10:40:004楼 得分:0
livedeal(怀念),你的代码我应该加在哪里啊?

我不知道怎么样即选了透明刷子又选笔……
发表于:2007-08-22 10:40:575楼 得分:0
crect   rc;
m_a.getwindowrect(&rc);
this-> screentoclient(&rc);
cclientdc   dc(this);
cbrush   *   pbruch=cbrush::fromhandle((hbrush)getstockobject(null_brush));
crect   rc2(rc.left   -3,rc.top-3,rc.right+2,rc.bottom+2);
cpen   pen(ps_solid,1,rgb(255,0,0));
cpen*   poldpen=dc.selectobject(&pen);
cbrush   *   poldbrush=dc.selectobject(pbruch);
dc.rectangle(rc2);
dc.selectobject(poldbrush);
dc.selectobject(poldpen);
pen.deleteobject();
pbruch-> deleteobject();
怕你不给分,还是写全给你```
发表于:2007-08-22 10:41:566楼 得分:0
pbruch-> deleteobject();
可以好像可以不用~~~~~
发表于:2007-08-22 10:47:357楼 得分:0
恩,cclientdc   自动释放的,写也可以不写也可以

谢谢livedeal(怀念),搞定了。

可是我又遇到个新问题:怎么擦掉我画上去的东西啊……
发表于:2007-08-22 10:52:138楼 得分:0
这个问题啊,是不是想在画的过程中拉动,原来的可以显示~???去看看双缓冲吧`````
发表于:2007-08-22 11:10:099楼 得分:0
不是,就是想按钮被按下画个框,另一个被按下的时候原来那个擦掉,新的在画一个


快速检索

最新资讯
热门点击