曾看过有文章介绍这个的,也有实现的,方法是截取所在区域的图然后作为Web控件背景,透明掉FALSH就好了。可仔细观察MagicFlash.exe后发现,其实现的不是区域截图,而是异型窗口!因此本人也自己尝试通过createwindowsrgn来实现,但是如果连续动画都用扣图来实现(像素点循环比较)实在太慢了,根本不可行不知道各位有什么好的建议或意见?一起讨论讨论吧

解决方案 »

  1.   

    magicflash使用的时候内存会不断的增加(不知原因),我用SetLayeredWindowAttributes很轻松的实现了背景透明播放flash,但是跟magicflash有区别,magicflash的背景是完全透明的,可以对后面的窗体进行操作,而我作的看起来确实是透明的,却无法对后面的窗体进行操作,而且一旦系统运行了大型程序,占用不少资源后,SetLayeredWindowAttributes将失效,无法实现透明,而magicflash则不会,不受系统资源的影响。
    总结一下:
    1。低配置的电脑用SetLayeredWindowAttributes实现不了透明播放flash,即使实现了,也跟magicflash有差别
    2。根据magicflash使用的时候,鼠标指针不断的闪烁,猜测magicflash在不断的刷新界面
      

  2.   

    呵呵,关键就是那个 “magicflash的背景是完全透明的,可以对后面的窗体进行操作”
      

  3.   

    但是SetLayeredWindowAttributes用来做那种静态的透明窗体的话,也是完全透明的,可以对后面的窗体进行操作,跟magicflash一样
      

  4.   

    新问题!我在尝试SetLayeredWindowAttributes的效果时,编译提示找不到这个函数???不是把,我是使用xp的阿,而且是vc7,sdk也够新了,user32.lib肯定也包含了(因为是mfc程序)怪了
      

  5.   

    哦,原来要自己动态加载的,可以看到效果了 xdswumei() ,再问一下,SetLayeredWindowAttributes(getsafehwnd(),rgb(12,12,12),0,2)
    这样自己制定了colorkey,为什么也会全透明?
      

  6.   

    哦,也行了,看了下整体效果。
    “但是SetLayeredWindowAttributes用来做那种静态的透明窗体的话,也是完全透明的,可以对后面的窗体进行操作,跟magicflash一样”好像不是这样的吧,对话框是隐身了(透明度0),但是确实还存在的,“magicflash的背景是完全透明的,可以对后面的窗体进行操作”效果无法实现
    期待各位的各种解决方案!
      

  7.   

    SetLayeredWindowAttributes(getsafehwnd(),rgb(12,12,12),0,2)
    这个是全透明的,colorkey应该是
    SetLayeredWindowAttributes(getsafehwnd(),rgb(12,12,12),0,1)
    对一般的窗体进行透明,确实是完全透明的
      

  8.   

    我说过了。播flash就不能操作窗体后面的内容,但不播就可以