我的控件是一个波形面板,需要画出几个矩形,我希望控件能实现透明的背景,这样控件被应用到VC或者VB工程中时能不遮盖对话框背景.请问我应该如何修改下面的DrawRect函数呢?
再或者,不能实现背景透明,那么怎样才能使我的控件以图片为背景呢?
谢谢大家!
void CPanelXYCtrl::DrawRect(CDC *dc)
{
CBrush foreBrush(m_forecolor);
CBrush backBrush(m_backcolor);
CBrush edgeBrush(RGB(0,0,0));
CBrush *old;
dc-> SetBkMode(TRANSPARENT); old=dc->SelectObject(&edgeBrush);
dc->FillRect(m_edgeRect,&edgeBrush);
dc->SelectObject(old);
old=dc->SelectObject(&foreBrush);
dc->FillRect(m_foreRect,&foreBrush);
dc->SelectObject(old); old=dc->SelectObject(&backBrush);
dc->Rectangle(m_plotRect);
dc->DrawEdge(m_plotRect,EDGE_SUNKEN ,BF_RECT); dc->SelectObject(old);
}
再或者,不能实现背景透明,那么怎样才能使我的控件以图片为背景呢?
谢谢大家!
void CPanelXYCtrl::DrawRect(CDC *dc)
{
CBrush foreBrush(m_forecolor);
CBrush backBrush(m_backcolor);
CBrush edgeBrush(RGB(0,0,0));
CBrush *old;
dc-> SetBkMode(TRANSPARENT); old=dc->SelectObject(&edgeBrush);
dc->FillRect(m_edgeRect,&edgeBrush);
dc->SelectObject(old);
old=dc->SelectObject(&foreBrush);
dc->FillRect(m_foreRect,&foreBrush);
dc->SelectObject(old); old=dc->SelectObject(&backBrush);
dc->Rectangle(m_plotRect);
dc->DrawEdge(m_plotRect,EDGE_SUNKEN ,BF_RECT); dc->SelectObject(old);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货