bmp的用SystemParametersInfo就可以了。
不知道jpg和gif的怎么设置。

解决方案 »

  1.   

    一般情况下,系统仅支持bmp的墙纸。像ACDSEE等软件,设置jpg等其它类型的图片为墙纸时,总是先把图片转换成bmp类型。如果系统支持activedesktop,你试试用IActiveDesktop::SetWallpaper()
      

  2.   

    1)在stdafx.h中#include <afxdisp.h>的前面加上
    #include <WININET.H>2)在程序中加上
    CoInitialize(NULL);IActiveDesktop* pActive = NULL;CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_SERVER, IID_IActiveDesktop, (void**)&pActive);pActive->ApplyChanges(AD_APPLY_ALL);
    pActive->Release();CoUninitialize();
    就可以了,它会使用IActiveDesktop这个interface使你的桌面不用重启就改变。
      

  3.   

    ::SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp",
      

  4.   

    修改注册表.给你几个参考
    http://tech.sina.com.cn/soft/2000-08-22/654.html