SystemParametersInfoにSPI_SETDESKWALLPAPERを指定して呼び出すことで、指定した画像ファイルを壁紙として設定することができる。
また、レジストリのHKEY_CURRENT_USER\Control Panel\Desktop\にある次のキーの値を変えることで、壁紙の表示方法も変更することができる。 キーWallpaperStyleとTileWallpaperの値と、表示方法の組み合わせは次のとおり。
WallpaperStyle | TileWallpaper | 表示方法 | 備考 |
---|---|---|---|
0 | 0 | 中央に表示 | |
0 | 1 | 並べて表示 | |
2 | 0 | 拡大して表示/画面に合わせて伸縮 (アスペクト比を維持せず、画面全体の大きさにあわせて拡大) |
|
6 | 0 | ページ縦幅に合わせる (アスペクト比を維持し、画面全体の大きさにあわせて拡大、画像が画面に収まるよう余白が入る) |
Windows 7以降 |
10 | 0 | ページ横幅に合わせる (アスペクト比を維持し、画面全体の大きさにあわせて拡大、画面に収まらない部分ははみ出す) |
Windows 7以降 |
以下のコードは、壁紙を変更する処理をラップしたクラスと、それを使ってさまざまな表示方法を試すサンプル。
なお、マルチディスプレイ環境では、個々の画面に別々の壁紙を設定する方法がないので、壁紙を変更する (マルチディスプレイ対応版)で解説しているような手段をとる必要がある。