马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 无符号整形 于 2016-9-16 12:12 编辑
@拈花小仙
SystemParametersInfo函数原型:BOOL WINAPI SystemParametersInfo(
_In_ UINT uiAction,
_In_ UINT uiParam,
_Inout_ PVOID pvParam,
_In_ UINT fWinIni
);
uiAction:该参数指定要查询或设置的参数,换壁纸是SPI_SETDESKWALLPAPER
uiParam:附加值
pvParam:要修改或者查询的缓冲区
fWinIni:指定用户配置文件是否被更新,如果是这样,则指定是否 WM_SETTINGCHANGE 将消息广播到所有的顶层窗口的更改通知他们,可以是0也可以是下列值:
SPIF_UPDATEINIFILE:把新的系统参数的设置内容写入用户配置文件。
SPIF_SENDCHANGE:在更新用户配置文件之后发送WM_SETTINGCHANGE消息。
SPI_SENDWININICHANGE:与 SPIF_SENDCHANGE一样。
那么思路就很明确了
换壁纸我们要给uiAction指定SPI_SETDESKWALLPAPER标志位,然后把SPIF_UPDATEINIFILE传递给fWinIni。
当然,pvParam要指向Unicode的位图路径,注意,是位图路径,不允许传JPG,PNG,GIF格式!! 只能传BMP格式。
我们先来随便弄一个图片,比如鱼C的logo
把它用画图另存为成bmp格式
啦啦啦~实验准备完毕,可以开始了
思路:先定义一个路径指向那个位图,然后调用SystemParametersInfo函数
那么,剩下的代码就不难了,注意:1.一定要记得把路径改成你放的位图的路径
2.重点看第6行#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
const wchar_t* Path = TEXT("C:\\Users\\Oden\\Desktop\\logo.bmp");
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID)Path, SPIF_UPDATEINIFILE);
return 0
}
秀一秀~~
换壁纸之后
|