我想以编程方式设置壁纸。 这是迄今为止唯一的解决scheme:
SystemParametersInfoW(SPI_SETDESKWALLPAPER, 1, (void*)wallpaperImageFilePath.utf16(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
我的问题是:如何告诉Windows我想壁纸图像居中(不resize)? 上面的解决scheme总是将图像设置为拉伸模式。 根据MSDN, SPI_SETDESKWALLPAPER
没有标志。
没有用于设置壁纸方向的API功能。 您必须直接转到注册表,特别是HKEY_CURRENT_USER\Control Panel\Desktop
项的"WallpaperStyle"
和"TileWallpaper"
值。 看到这篇文章的例子:
设置桌面壁纸(CppSetDesktopWallpaper)
从Windows 8开始,现在有一个发布的界面用于设置桌面背景。 具体来说就是IDesktopBackground::SetWallpaper
方法。 MSDN文档
该界面还有多种获取和设置幻灯片配置的方法,并获得所需的监视器设备路径。