Windwos XP风格,对话框有半透明,圆角效果

一、XP风格

1)创建manifest文件,首先在RES目录下建一个文件,命名Master.manifest然后用记事本打开放入 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
name="Microsoft.Windows.XXXX" 
processorArchitecture="x86" 
version="5.1.0.0" 
type="win32"/> 
<description>Windows Shell</description> 
<dependency> 
<dependentAssembly> 
<assemblyIdentity 
type="win32" 
name="Microsoft.Windows.Common-Controls" 
version="6.0.0.0" 
processorArchitecture="x86" 
publicKeyToken="6595b64144ccf1df" 
language="*" 
/> 
</dependentAssembly> 
</dependency> 
</assembly>
2,然后VC导入资源,把这个新建的文件导入,类型为24   

3,用记事本打开rc 文件, 找到自定义资源的地方,改成如下句子
IDR_MANIFEST 24 MOVEABLE PURE "res\\Master.manifest" ,MOVABLE PURE是一定不能少的。

4, 进入VC, 把这个自定义资源IDR_MANIFEST的ID改为1(没有引号) 


编译,,你的程序就有了XP的风格


二、对话框透明效果

在ONINITIALDIALOG中加入一下代码

//设置透明
HINSTANCE hInst = LoadLibrary("User32.DLL");
if(hInst)
{ 
	ModifyStyleEx(0,0x00080000);
	typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
	MYFUNC fun = NULL;
	//取得SetLayeredWindowAttributes()函数指针
	fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
	if(fun)fun(this->GetSafeHwnd(),0,220,2);
	FreeLibrary(hInst);
}
那个 fun的第3个参数为ALPHA


三、对话框圆角特效

CRect rt;  
this->GetWindowRect(&rt);  
CRgn rg;  
rg.CreateRoundRectRgn(rt.left, rt.top, rt.right, rt.bottom, 55, 55);  
this->SetWindowRgn(rg, FALSE);   



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值