请教个问题,如果要在对话框中加载一张图片作为背景,又要实现对话框中的各个控件的透明效果 ,应该怎么做?谢谢
解决方案 »
- win8 IE10 activex问题
- 滚动视图如何显示原点上部和左侧的区域
- 在evc下,新建对话框类出错!
- afxsock.h和winsock2.h运行时产生冲突如何解决!
- 我用sendmessage模拟键盘输入,为什么不成功呢
- 求使用opengl做模拟3D地球仪源码 ,可旋转,地图可放大缩小的
- 如何把桌面上的一个窗口旋转过来?例如,正在播放VCD的视频窗口,倒置过来播放。有例程也行。
- 一个关于ActiveX签名的问题(50份)
- Debug和Release对指针地址的分配有何区别? 怎么解决? 就只剩25分了, (zx_sanjin)
- 大家救救我吧!!!!!!!
- 如何将OpenGL绘制的图形保存为位图或者其他格式的文件
- 升星,散分
CBitmap m_bitmap;
m_bitmap.LoadBitmap(IDB_BITMAP1);
重载WM_ERASEBKGND消息
BOOL CMydilog::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
/*
if(!m_bitmap.m_hObject)
return true;
CRect rect;
GetClientRect(&rect);
CDC dc;
dc.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dc.SelectObject(&m_bitmap);
int bmw, bmh ;
BITMAP bmap;
m_bitmap.GetBitmap(&bmap);
bmw = bmap.bmWidth;
bmh = bmap.bmHeight;
pDC->StretchBlt(0, 0, rect.Width(),
rect.Height(), &dc,
0, 0,bmw,bmh, SRCCOPY);
dc.SelectObject(pOldBitmap);
*/
return TRUE;
}控件透明(非所有)
重载WM_CTLCOLOR消息
HBRUSH CMydilog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
int nID = pWnd->GetDlgCtrlID();
if( nID == IDC_STATIC1) //对指定的控件设属性,你也可以用上面的方法针对所有的标签
{
pDC->SetTextColor(RGB(0,0,0) );//多此一举,你可以设文字其它的颜色
pDC->SetBkMode(TRANSPARENT);
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
return hbr;
}
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
int nID = pWnd->GetDlgCtrlID(); pDC->SetTextColor(RGB(0,0,0) );//多此一举,你可以设文字其它的颜色
pDC->SetBkMode(TRANSPARENT);
return HBRUSH(GetStockObject(HOLLOW_BRUSH)); }