我想作一个程序,将朋友的8幅图片分别设置为墙纸。设置定时器可以自动更新,又可以手动调节。
    我想问在VC中如何将图片设置为墙纸?函数是什么?

解决方案 »

  1.   

    SystemParametersInfo(SPI_SETDESKWALLPAPER,0,"文件路径",0);
      

  2.   

    下面这段代码就可以实现,有几点需要注意如果你的windows没有使用activedesktop的话,只能设置bmp格式的图片为墙纸,设置了activedesktop就可以使用jpg等格式了。#include <wininet.h>
    #include <shlobj.h>HRESULT hr;
    CoInitialize(NULL);
    //Create an instance of the Active Desktop
    hr = CoCreateInstance(CLSID_ActiveDesktop,
                          NULL,
                          CLSCTX_INPROC_SERVER,
                          IID_IActiveDesktop,
                          (void**)&pActiveDesktop);if(pActiveDesktop->SetWallpaper(L"wallpaper.bmp",0)!=S_OK)
        return;

    pActiveDesktop->ApplyChanges(AD_APPLY_ALL|AD_APPLY_FORCE);pActiveDesktop->Release();
    CoUninitialize();
      

  3.   

    用IActiveDesktop::SetWallpaper()
      

  4.   

    忘记说了,pActiveDesktop是:
    IActiveDesktop *pActiveDesktop;
      

  5.   

    我用的是直接写注册表的方式。而且好象JPG也行。