A little background. I wrote a Wallpaper changer that I'm pretty proud of.(Here) (The algorithm for drawing creating a background on a multi-monitor system is rather interesting because 0,0 for the background is on the upper left of the primary monitory, not the upper left of the leftmost/topmost monitor and/or virtual desktop)
However, I was noticing some severe flicker on my monitors, mostly related to the icons, so I decided to turn them off (Right click on desktop -> Arrange Icons By -> (uncheck) Show Desktop Icons) A few seconds later, the icons are gone (and so is the flicker) However, the wallpaper is now off because this setting changes it so it draws the wallpaper based on the 0,0 of the Virtual Desktop, which throws the background all to heck. (My monitors are on three different planes due to my desk, but it also affects if you have different resolutions) (Also, you now have to set SPIF_SENDCHANGE along with SystemParametersInfo in order to change the background, otherwise it ignores the SETBACKGROUND call)
This is one of those times when I'm really scratching my head. I can almost understand why SystemParamatersInfo(SPI_SETDESKWALLPAPAER) might react differently, but why would it change the positioning of the upper left of the background.And it makes me wonder how many different configurations of settings I'd have to test....
Grrr....
To anyone who tried this and wondered why the backgrounds were off, that's why... Now I just need to figure out how to detect that checkbox and draw from a different 0,0 point... Which I tried to do in the first place <grin>