在VC中,怎样把jpg文件设置为墙纸?附加问一下,向文件写入中文字符串的时候,经常出现什么方框之类的,这是怎么回事?

解决方案 »

  1.   

    下面这段代码就可以实现,有几点需要注意如果你的windows没有使用activedesktop的话,只能设置bmp格式的图片为墙纸,设置了activedesktop就可以使用jpg等格式了。#include <wininet.h>
    #include <shlobj.h>
    IActiveDesktop *pActiveDesktop;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();
      

  2.   

    方框大概是ASCII字符,是WINDOWS把其当单字节字符认了,应该是你往你写的是时候没写正确
      

  3.   

    方框大概是ASCII字符,是WINDOWS把其当单字节字符认了,应该是你往你写的是时候没写正确不同意,方框是一些控制符,在记事本方式下无法显示,于是显示成方框,没影响的,和写的方法无关