高人请进-Windows是怎么显示桌面墙纸
高人请进----Windows是如何显示桌面墙纸?
我作了个DLL,把它插入EXPLORER里,
拦截WM_NOTIFY,在桌面上绘制自己的墙纸,
问题是,桌面上的窗口移动时,系统先画原来系统的墙纸,
再画我的墙纸,造成闪烁.
我又拦截PaintDesktop()和消息WM_ERASEBKGND都没有解决问题.
各位高人,怎么解决这个问题?
能讲一下Windows显示桌面墙纸的原理吗?
------解决方案--------------------
曾经看过,在《c++ builder 深度历险》里有讲到,楼主可到找来看看
------解决方案--------------------
一般设置墙纸是用IActiveDesktop来做的,不知道lz是要做什么?
------解决方案--------------------
如果是在你自己的程序需要这样做的话,只要做一个全屏的桌面,然后在上面显示图片,在OnTimer里面换图片,用双缓冲和MMX等方式加快显示速度,这样就能做到幻灯片的效果了。
------解决方案--------------------
墙纸不是explorer绘制的,而是由csrss绘制的,结束掉explorer还能见到墙纸就是最好的证明.双缓冲用了没?估计是绘制的机制不同.
------解决方案--------------------
截获桌面DC,创建与之兼容的内存DC,将你的图象载入内存DC,最后BITBLT到桌面DC
我作了个DLL,把它插入EXPLORER里,
拦截WM_NOTIFY,在桌面上绘制自己的墙纸,
问题是,桌面上的窗口移动时,系统先画原来系统的墙纸,
再画我的墙纸,造成闪烁.
我又拦截PaintDesktop()和消息WM_ERASEBKGND都没有解决问题.
各位高人,怎么解决这个问题?
能讲一下Windows显示桌面墙纸的原理吗?
------解决方案--------------------
曾经看过,在《c++ builder 深度历险》里有讲到,楼主可到找来看看
------解决方案--------------------
一般设置墙纸是用IActiveDesktop来做的,不知道lz是要做什么?
------解决方案--------------------
如果是在你自己的程序需要这样做的话,只要做一个全屏的桌面,然后在上面显示图片,在OnTimer里面换图片,用双缓冲和MMX等方式加快显示速度,这样就能做到幻灯片的效果了。
------解决方案--------------------
墙纸不是explorer绘制的,而是由csrss绘制的,结束掉explorer还能见到墙纸就是最好的证明.双缓冲用了没?估计是绘制的机制不同.
------解决方案--------------------
截获桌面DC,创建与之兼容的内存DC,将你的图象载入内存DC,最后BITBLT到桌面DC