2

我想以编程方式设置壁纸。这是我迄今为止找到的唯一解决方案:

SystemParametersInfoW(SPI_SETDESKWALLPAPER, 1, (void*)wallpaperImageFilePath.utf16(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);

我的问题是:如何告诉 Windows 我希望墙纸图像居中(不调整大小)?上面的解决方案总是将图像设置为拉伸模式。根据 MSDN,没有伴随的标志SPI_SETDESKWALLPAPER

4

2 回答 2

11

从 Windows 8 开始,现在有一个用于设置桌面背景的已发布界面。具体IDesktopBackground::SetWallpaper方法。MSDN 文档

该界面还有多种获取和设置幻灯片配置的方法,以及获取所需的监控设备路径。

于 2017-10-09T13:27:08.910 回答
5

没有用于设置壁纸方向的 API 函数。您必须直接转到注册表,特别是键的"WallpaperStyle""TileWallpaper"HKEY_CURRENT_USER\Control Panel\Desktop。有关示例,请参见本文:

设置桌面壁纸(CppSetDesktopWallpaper)

于 2013-01-06T20:36:31.150 回答