我用下面的方法给对话框贴了一张背景图,1. 给对话框类增加一个CBrush类型的变量m_bkBrush。
2. 导入一个Bitmap文件,ID更改为IDB_BACKGROUND。
3. 在对话框的构造函数中加入代码:
CBitmap *pBitmap=new CBitmap;
pBitmap->LoadBitmap(IDB_BACKGROUND);
m_bkBrush.CreatePatternBrush(pBitmap);
delete pBitmap;4. 为对话框映射WM_CTLCOLOR消息,在对应的处理函数中加入代码: if(nCtlColor==CTLCOLOR_DLG)
return (HBRUSH)m_bkBrush.GetSafeHandle();背景图确实贴上了,可是问题是,对话框上的Static控件不是透明的,依然保留对话框的灰色背景,如何才能去掉灰色背景,让对话框上的文字从背景图片看上去是透明的?
2. 导入一个Bitmap文件,ID更改为IDB_BACKGROUND。
3. 在对话框的构造函数中加入代码:
CBitmap *pBitmap=new CBitmap;
pBitmap->LoadBitmap(IDB_BACKGROUND);
m_bkBrush.CreatePatternBrush(pBitmap);
delete pBitmap;4. 为对话框映射WM_CTLCOLOR消息,在对应的处理函数中加入代码: if(nCtlColor==CTLCOLOR_DLG)
return (HBRUSH)m_bkBrush.GetSafeHandle();背景图确实贴上了,可是问题是,对话框上的Static控件不是透明的,依然保留对话框的灰色背景,如何才能去掉灰色背景,让对话框上的文字从背景图片看上去是透明的?
解决方案 »
- 想写个很简单的HTTP服务。用IOCP好还是select好?
- VC 请问从socket接收到数据后放在一个buf里面 如何将这个buf显示到屏幕?各位帮帮忙,小弟不懂,压力大怪可怜的
- 树型控件经常加入项目,用那种方法加载和保存数据数据效率高?
- 两个共用一个线程体的线程我怎样停止其中的一个,而另一个还继续执行啊。新手上路!!!
- DLL中怎么用快捷键?
- COM初学者,请给点建议,谢谢!up有分
- 怎样中断串口232的通信?即串口在通信过程中,强制终止通信。
- 问一个函数名:读取当前WINDOWS版本的API叫什么?等待。
- 问两个线程管理的问题
- 请问 SlideShowWindow.View.GetSlide() 返回的是不是 _Slide
- 填充页面区域的效率问题
- 想要用CFileDialog类来生成一个保存对话框,但是生成了保存不了。有那位会用这东西的吗?急急急!!!
{
pDC->SetBkMode( TRANSPARENT );
return (HBRUSH)GetStockObject( NULL_BRUSH );
}
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
return hbr;
}