壁紙の設定の仕方 壁紙を用意します。壁紙のファイル名をwallpaper.bmpとすると、 unsigned char WallPaperName[_MAX_PATH]="wallpaper.bmp"; SystemParametersInfo(SPI_SETDESKWALLPAPER,0,WallPaperName,SPIF_SENDWININICHANGE|SPIF_UPDATEINIFILE); とします。ここで表示位置、及びタイル状にするしないを設定する場合には INT WallPaperCenter; //1:中央に表示,0:タイル状に配置 INT SetWallPaperPos; //1:壁紙の位置の設定を行う, 0:壁紙の位置の設定を行わない INT WallPaperPosX,WallPaperPosY; //壁紙を表示させるX座標,Y座標(0,0)を指定した場合には中央に配置になる unsigned char RegKeyBuffer[_MAX_PATH]=""; HKEY hKey; DWORD BufferSize=_MAX_PATH; //RegKeyを開く if(RegOpenKeyEx(HKEY_CURRENT_USER,"Control Panel\\desktop",0,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS) { //Tile状に壁紙を張るかどうかのチェック if(WallPaperCenter)//中央に配置 { RegSetValueEx(hKey,"TileWallpaper",0,REG_SZ,"0",strlen((LPSTR)RegKeyBuffer)); } else//タイル状に配置 { RegSetValueEx(hKey,"TileWallpaper",0,REG_SZ,"1",strlen((LPSTR)RegKeyBuffer)); } //表示位置の設定 if(SetWallPaperPos) { sprintf(RegKeyBuffer,"%d",WallPaperPosX); RegSetValueEx(hKey,"WallpaperOriginX",0,REG_SZ,RegKeyBuffer,strlen((LPSTR)RegKeyBuffer)); sprintf(RegKeyBuffer,"%d",WallPaperPosX); GetDlgItem(IDC_STARTX)->GetWindowText((LPSTR)RegKeyBuffer,100); } else { RegDeleteValue(hKey,"WallpaperOriginX"); RegDeleteValue(hKey,"WallpaperOriginY"); } RegCloseKey(hKey); } 以上の様になります 表示位置、及びタイル状にするしないは上の方法で今度はレジストリを読むようにすればOKです。 現在壁紙に設定されているファイル名を確保するには、 CHAR WallPaperName[_MAX_PATH]; HKEY hKey; DWORD BufferSize=_MAX_PATH; if(RegOpenKeyEx(HKEY_CURRENT_USER,"Control Panel\\desktop",0,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS) { RegQueryValueEx(hKey,"Wallpaper",NULL,NULL,WallPaperName,&BufferSize); RegCloseKey(hKey); } とすればとってこれます。