我用IActiveDesktop里面的Setwallpaper函数成功实现了定时切换桌面背景,但效果不理想,有以下问题:
1. 切换生硬,桌面图标在切换的时候感觉到闪烁。
2. 每次切换时系统读硬盘,切得频率快的话,就有问题了,老看硬盘闪,烦心。怎么办呢?我想了半天,实在是头痛,有点想法征求下意见。1.  把需要更改的桌面图片合起来搞成一个gif,这个方式可行吗? 我自己都觉得悬。
2.  不用SetWallpaper函数,用更底层的技术来实现。可惜我不会,没玩过,玩过的给指点下啊
能顺便给贴点代码最好了,谢谢。

解决方案 »

  1.   

    调用系统api就可以可 
    看看我的这个帖子
    http://topic.csdn.net/u/20091022/16/fb473fd4-c525-435e-8196-dba568340b24.html
      

  2.   

    LS這個不錯,不過還是要用bmp格式啊
      

  3.   

    gdd190提到的系统调用,也就是用 
    SystemParametersInfo(20, 1,filename, 1);这种方式确实可以切换壁纸,但跟iactivedesktop的SetWallPaper函数作用一样,另外还只能接受bmp的图片格式,额外还要做格式转换,个人感觉还没有IActiveDesktop来的方便。也许是我桌面图标太多了,在更换桌面的时候闪烁很明显。其实我想达到的效果,是比较平滑的更换桌面,不要看得那么生硬。
    至于读硬盘的问题,如果是设置文件壁纸,应该是怎么也避免不了。但能不能读缓存的图像数据然后显示为背景呢?一周后结贴,不管有没有解决方案。 分数按大家的回帖价值分。