在桌面绘图谁都会,问题是要求绘上的图片不是一个对象,换句话说:不存在。你能看见,但不能操作,如果你用鼠标点它,就等于点它下面的区域,它始终得不到焦点,就像显示器上面的 OSD 菜单,你能看见,但不能用鼠标和键盘操作。另外还有两个要求:1.绘制的图片要必须能支持 8 bit(256级)alpha 通道半透明。方便加载 png 图片不产生毛边。
2.图片能动态加载或更换。初来咋到,分数不够,望达人不吝赐教。

解决方案 »

  1.   

    P.S.
    VC++ / VB  代码均可。
      

  2.   

    “能看见不能操作”,就是“鼠标穿透”功能,这个可以用 SetWindowLong 为窗体加 WS_EX_TRANSPARENT 风格来实现。注意前是你绘制的这个图像是一个窗口。像楼主期望的“旋转地球”,也只能借助于窗才能实现。至于支持 Alpha,不是必须不必须的问题,只要你编写相应的代码,窗口都支持的。你可以用 UpdateLayeredWindow 函数来实现。
      

  3.   

    按照LZ的意思,太难实现了
    估计得在操作系统的多个API上下钩子
      

  4.   

    妖怪,这种东西做出来就是妖怪,只有影子没有人……连vista的梦幻桌面恐怕都做不到你的要求,因为你的这个“妖怪”位于一个不可思议的Z轴层次,从里到外依次是:桌面背景 - 桌面图标 - “妖怪” - 其它窗口,凭空加了一层,不是难的问题,而是有没有可能的问题
      

  5.   

    好像也不是没有可能,这种应用也挺多的记得豪杰解霸3000有个功能就是 背景播放,就是在桌面播放电影,但是桌面上的图标还可以正常操作,电影画面根本不会影响桌面的操作,很cool哦!!
      

  6.   

    谢谢大家的关注,不过比起这些理论,一段 sample 代码更能让我理解,所以,还请高人赐“码”。
      

  7.   

    感觉跟linux下屏幕火焰字之类的很像啊~
    呵呵,有难度!