當前位置:編程學習大全網 - 編程軟體 - VC編程,怎樣實現怎樣設置墻紙

VC編程,怎樣實現怎樣設置墻紙

僅供參考:

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();

}

  • 上一篇:n20b20怠速多少
  • 下一篇:密碼破譯 C++
  • copyright 2024編程學習大全網