VC实现透明背景和半透明图片
2012-06-09 10:51
477 查看
1.如何将对话框客户区的背景设成透明的? crybird (寒号鸟) http://expert.csdn.net/Expert/topic/2172/2172079.xml 描述:如题。客户区的背景能设成透明的么?如果有时间,非客户区的隐藏也讲讲啦! 回复人: bcpl(我是宇宙中的一粒沙子) BOOL CALLBACK EnumChildFunc(HWND hwnd, LPARAM lParam) { CRgn *pRgn = (CRgn*)lParam; CRect rcChild; ::GetWindowRect(hwnd, rcChild); CRgn rgnChild; CRgn rgnCopy; rgnCopy.CreateRectRgn(0, 0, 1, 1); rgnCopy.CopyRgn(pRgn); rgnChild.CreateRectRgn(rcChild.left, rcChild.top, rcChild.right, rcChild.bottom); pRgn->CombineRgn(&rgnCopy, &rgnChild, RGN_OR); return TRUE; } int SetBackTransparent(CWnd *pWnd, BOOL bClientOnly = TRUE) { CRgn rgn; if(bClientOnly) { CRgn rgnWindow, rgnClient; CRect rcWindow, rcClient, rcRgn; pWnd->GetWindowRect(rcWindow); pWnd->GetClientRect(rcClient); pWnd->ClientToScreen(rcClient); rgnWindow.CreateRectRgn(rcWindow.left, rcWindow.top, rcWindow.right, rcWindow.bottom); rgnClient.CreateRectRgn(rcClient.left, rcClient.top, rcClient.right, rcClient.bottom); rgn.CreateRectRgn(0, 0, 1, 1); rgn.CombineRgn(&rgnWindow, &rgnClient, RGN_DIFF); } else { rgn.CreateRectRgn(0, 0, 0, 0); } ::EnumChildWindows(pWnd->GetSafeHwnd(), (WNDENUMPROC)EnumChildFunc,(LPARAM)&rgn); return pWnd->SetWindowRgn(rgn, TRUE); } 调用办法: 在CYourDialog::OnInitDialog里加上 SetBackTransparent(this); 如果要连非客户区都透明,用 SetBackTransparent(this, FALSE); 版主点评: 高手。 //--------------------------------------------------------------------------- http://expert.csdn.net/Expert/topic/2422/2422164.xml 主 题: 如何在一个背景图像上,做半透明的图? 作 者: DMC (DMC) 描述: 如何在一个背景图像上,做半透明的图。我想实现在一个地图上显示半透明的数据信息,类似天气预报中等压图的处理。如何才能实现这个背景图和最上层图的相互映射,完成半透明的效果? 回复人: Raxxxer(Jasmine Hellstorm) 你可以使用windows的一个api AlphaBlend,用法和BitBlt差不多: BLENDFUNCTION bf; bf.AlphaFormat=0; bf.BlendFlags=0; bf.BlendOp=AC_SRC_OVER; bf.SourceConstantAlpha=100;//透明度0-255 AlphaBlend(hBackDC,0,70,73,20,hMaskDC,0,0,73,20,bf); 不可以在WindowsCE里用 #include <wingdi.h> //还要在Project -- setting -- link 里连接上msimg32.lib |
相关文章推荐
- VC实现透明背景和半透明图片
- Android编程实现设置按钮背景透明与半透明及图片背景透明的方法
- 纯css实现背景图片半透明,内容不透明
- VC++ MFC 中动态更改透明背景的静态文本时重叠现象(尤其是界面设置了背景图片时)
- VC++使用CImage PNG转BMP图片透明背景处理
- CSS实现Div层背景半透明而内容不透明的效果
- 实现png图片和png背景透明(支持多浏览器)的方法
- 用Qt实现窗体的无边框、可移动、透明不规则显示(需背景透明的图片)
- 实现gif图片背景真正意义上的透明
- VC中设置了对话框背景图片的情况下不能正确显示radio控件透明
- vc++加载透明png图片方法——GDI+和CImage两种 ,vs2005 vs2008 PNG背景
- GIMP使用 一 实现图片的背景透明
- VC++使用CImage PNG转BMP图片透明背景处理
- Android 设置按钮背景透明与半透明_图片背景透明
- MFC一一添加背景图片并让控件实现透明的
- Android开发_如何设置按钮背景透明与半透明_图片背景透明
- 如何使png图片在ie6里实现透明背景
- Android开发_如何设置按钮背景透明与半透明_图片背景透明
- Android开发_如何设置按钮背景透明与半透明_图片背景透明