就好象Windows Live Mail开始运行时的弹出窗口,那个半透明,四周带阴影的窗口呢?
解决方案 »
- 如何在Direct3D程序环境中使用DirectShow播放视频了?
- 谁能给我一个winsocket2非阻塞编程的例子和介绍?
- 请推荐一本关于vc数据库的好书谢谢
- 在线等待:如何把一个字符串用drawText完整填到区域中,???
- 为什么我的VC6编译什么程序都显示"Error spawning cl.exe"?
- 参数lParam和wParam到底传递什么?
- 基本的问题,关于Dump和CDumpContext是怎么回事?
- windows下gui程序开发碰到的选择难题
- visual C下的oracle数据库问题????
- 成员函数做线程的问题
- 问 用vc开发压缩解压的详细方法和过程 急用
- CSDN真TMD没能人啊, 这么点小问题都没人给我解决掉啊
SetLayeredWindowAttributes函数,似乎不能处理子窗口,而且好象全窗口透明了以后就不能单独使边框不透明了。
void CAboutDlg::DoUpdate(CBitmap &bmp, BYTE SourceConstantAlpha/*= 255*/)
{
VERIFY(ModifyStyleEx(0, WS_EX_LAYERED));
CRect rectDlg;
GetWindowRect(rectDlg); CDC dcScreen;
CDC dcMemory; dcScreen.Attach(::GetDC(m_hWnd));
dcMemory.CreateCompatibleDC(&dcScreen); CBitmap *pOldBitmap= dcMemory.SelectObject(&bmp); BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);
CPoint ptWindowScreenPosition(rectDlg.TopLeft());
CSize szWindow(bmpInfo.bmWidth, bmpInfo.bmHeight); BLENDFUNCTION blendPixelFunction = { AC_SRC_OVER, 0, SourceConstantAlpha, AC_SRC_ALPHA };
CPoint ptSrc(0,0); ::UpdateLayeredWindow(GetSafeHwnd(), dcScreen, &ptWindowScreenPosition, &szWindow, dcMemory,
&ptSrc, 0, &blendPixelFunction, ULW_ALPHA);
dcMemory.SelectObject(pOldBitmap);
}
上面是四周带阴影的对话框的例子,想要半透明的话,自己再处理一下颜色,或者用张半透明的图片,很简单的!
skinbeauty 换肤库 是一个可选方案,提供免费试用版。
http://www.afe-soft.com