MFC改变桌面背景

 
void SetBackGround(CString &backPath)
{
//在设置背景以前需要通过修改注册表,使壁纸拉伸显示
//=======================================
//修改注册表
HANDLE hKEY;//定义hKEY,在程序结束后需要关闭,本应该定义为HKEY,但是不知道为什么提示HKEY没有定义
//估计是头文件的问题,查MSDN发现typedef HANDLE HKEY
LPCTSTR data_set=_T("Control Panel\\Desktop");
long ret0=(::RegOpenKeyEx(HKEY_CURRENT_USER,data_set,0,KEY_WRITE,(PHKEY)&hKEY));//打开注册表,用于修改
if(ret0!=ERROR_SUCCESS)
{
AfxMessageBox(_T("注册表打开失败,请检查您是否有足够的权限"));
return;
}
CString cs=_T("0");
LPBYTE owner_set=CString_To_LPBYTE(cs);
long ret1=::RegSetValueEx((HKEY)hKEY,_T("TileWallpaper"),NULL,REG_SZ,owner_set,2);//修改注册表
if(ret1!=ERROR_SUCCESS)
{
AfxMessageBox(_T("注册表修改失败,请检查您是否有足够的权限"));
return;
}
cs=_T("2");
owner_set=CString_To_LPBYTE(cs);
ret1=::RegSetValueEx((HKEY)hKEY,_T("WallpaperStyle"),NULL,REG_SZ,owner_set,2);//修改注册表
if(ret1!=ERROR_SUCCESS)
{
AfxMessageBox(_T("注册表修改失败,请检查您是否有足够的权限"));
return;
}

SystemParametersInfo(SPI_SETDESKWALLPAPER,backPath.GetLength(),backPath.GetBuffer(backPath.GetLength()),//修改壁纸
SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE);
backPath.ReleaseBuffer();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值