2013-01-06 2 views
2

Я хочу программно установить обои. Вот единственное решение, которое я нашел до сих пор:Настройка обоев с помощью Win API

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

Мой вопрос: как сказать Windows, я хочу, чтобы фоновое изображение по центру (размер не меняется)? Решение выше всегда задает изображение в режиме растяжения. Согласно MSDN, нет никаких флагов для сопровождения SPI_SETDESKWALLPAPER.

ответ

5

Не существует функции API для настройки ориентации обоев. Вы должны перейти непосредственно в реестр, а именно "WallpaperStyle" и "TileWallpaper" значениями ключа HKEY_CURRENT_USER\Control Panel\Desktop. Смотрите эту статью для примера:

Set the desktop wallpaper (CppSetDesktopWallpaper)

3

На Windows 8 теперь есть опубликованный интерфейс для настройки фонового рисунка рабочего стола. В частности, метод IDesktopBackground::SetWallpaper. MSDN Documentation

Интерфейс также имеет несколько способов получения и настройки конфигурации слайд-шоу и получения необходимых путей к устройству монитора.

+1

Замечательно знать, спасибо! –

Смежные вопросы