您的位置:首页 > 其它

vc透明对话框

2015-06-03 17:04 295 查看
在OnInitDialog()中添加代码

1、vs2003以上

//VS2003以上版本  
	SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED);  
	SetLayeredWindowAttributes(0,200,LWA_ALPHA);

2、vc6.0

SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|0x00080000);  
	HINSTANCE hInst = LoadLibrary(_T("User32.dll"));  
	if (hInst)  
	{  
	    typedef BOOL (WINAPI *MyFun)(HWND,COLORREF,BYTE,DWORD);  
	    MyFun myfun = NULL;  
	    myfun = (MyFun)GetProcAddress(hInst, "SetLayeredWindowAttributes");
	    //"190"为设置的透明度,范围0-255, 0完全透明,255不透明
	    if (myfun) myfun(GetSafeHwnd(),0,190,2);  
	    FreeLibrary(hInst);  
	}

注:这种添加方式为对话框和上面的所有控件一起透明,然而实际使用中,多数情况下想让对话框背景透明,静态文本背景透明,而对话框上的所有控件不透明,这种实现方法在下一篇文章中介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: