僅供參考:
1、如果墻紙是桌面壁紙的話
2、
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();
}