打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC中创建具有透明效果的对话框
userphoto

2010.05.03

关注

1、创建一个基于对话框的MFC EXE

2、对话框的 OnInitDialog 函数 中,设置对话框扩展属性 为:WS_EX_LAYERED

const WS_EX_LAYERED = 0x80000;

::SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,
GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED);

3、在对话框的 OnInitDialog 函数 中,设置对话框透明

HINSTANCE hInst;

const LWA_COLORKEY = 0x00001;
const LWA_ALPHA = 0x00002;

typedef BOOL (WINAPI *FSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD);
FSetLayeredWindowAttributes SetLayeredWindowAttributes;

hInst = LoadLibrary("User32.dll");

SetLayeredWindowAttributes = (FSetLayeredWindowAttributes)
   GetProcAddress(hInst,"SetLayeredWindowAttributes");

SetLayeredWindowAttributes(GetSafeHwnd(),RGB(0,0,0),150,LWA_ALPHA);

FreeLibrary(hInst);

注:此方法仅适用 Windows2000以上平台 

补充部分:
还有另外一种方法可以实现对话框的透明,而且也简单一些,但是我在除自己电脑外,还在同学电脑上也试了下,效果一点都不好,做法是这样的,在VC中打开对话框资源,在对话框编辑器上右击选择属性(PROPERTIES),然后选择扩展属性(EXTENTED STYLE),勾选上TRANSPARENT。这个效果在我电脑上不明显,但你可以试试看。 
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VC窗口透明
VC窗口透明的方法 - 日志 - 李鸿儒 - 慧聪社会 - shehui.hc360.com
如何实现透明窗口
VB无所不能之四:制作透明和半透明窗体
MFC创建不规则对话框
透明窗口的制作(MFC) - foolish
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服