|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
- }
复制代码
秀一秀~~
换壁纸之后
|
评分
-
参与人数 2 | 荣誉 +10 |
鱼币 +10 |
贡献 +9 |
收起
理由
|
拈花小仙
| + 5 |
+ 5 |
+ 4 |
感谢楼主无私奉献! |
小甲鱼
| + 5 |
+ 5 |
+ 5 |
热爱鱼C^_^ |
查看全部评分
|