C++ MFC 如何画一个有透明填充色的矩形,求代码 20

 我来答
百度网友3a00d8c64
推荐于2017-07-26 · TA获得超过599个赞
知道小有建树答主
回答量:430
采纳率:64%
帮助的人:323万
展开全部

关键代码如下:

CClientDC dc(this);
dc.SelectStockObject(NULL_BRUSH);
dc.Rectangle(0,0,300,200);

只需要在画出矩形之前,把NULL_BRUSH这个自带的预定义画笔选入设备描述表(dc)即可。

有你的晴天12138
2015-07-01 · TA获得超过1001个赞
知道小有建树答主
回答量:305
采纳率:80%
帮助的人:211万
展开全部
// 假设已经有了一个 CDC *pDC
// 获取一个透明画刷,并将其选入设备描述表
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush = pDC->SelectObject(pBrush);

// 使用 CDC::Rectangle 函数绘制矩形,略

// 还原设备描述表
pDC->SelectObject(pOldBrush);
更多追问追答
追问
那该如何指定透明填充色为蓝色呢
追答

创建蓝色画刷即可,代码如下:

void CDrawView::OnDraw(CDC* pDC)
{
CDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

CBrush brush;
brush.CreateSolidBrush(RGB(0, 0, 255));
CBrush *pOldBrush = pDC->SelectObject(&brush);

pDC->Rectangle(100, 100, 400, 200);
pDC->SelectObject(pOldBrush);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式