如题,,求怎样实现,,,先说明一下我不想要用两个form实现的,,也不要用form的op什么属性是实现的,,我想要用gdi+和api实现的C#控件APIGDI+

解决方案 »

  1.   

    windows vista+ 直接用aero glass,windows xp无解。
      

  2.   

    饿,,,怎么用,,,win7下和vista一样的吧
      

  3.   

    我看到网上有说用dwm这个dll的但是我打不开
      

  4.   

    我刚又试了一下可以了,,原来不是在引用那边添加的,,是直接用dllimport引用的,,,但是还有一个问题就是不知道能不能控制透明的百分比,,,旗舰版可以调百分比,,,那应该也有这个api的吧
      

  5.   

    http://www.itbobo.com/c-winform-realize-win7-aero-by-by-the-the-matte-effect.html
      

  6.   

    DYD.DLL单窗体实现层窗体显示控件
      

  7.   

    支持2000/XP/2003/VISTA/2008/7/8/9/10
    一句代码:
    Dyd.StartDraw,不过这个有点耗CPU,新版本的还没发布,我还在改进。
      

  8.   

    原理就是类似DirctX,独立的界面绘制渲染引擎,使得能对所有元素进行统一绘制到单一的窗体上.
      

  9.   

    这样啊,,,貌似很复杂的样子,,,我现在用dwm加上对jpg图像添加一个透明通道来实现半透明,,但是效果非常之卡,,,没什么好的解决办法
      

  10.   

    你可以尝试一下这个DLL,自己写的,所以不用担心会有病毒木马问题。
      

  11.   

    膜拜下DYLIKE刚刚我看到2L的话就想笑了,说的太绝对了吧看来他不知道CSDN曾经有DYlike
      

  12.   

    主要是我现在没学过wpf,,,而且我程序写一半了,,再改wpf困难了,,,不过话说现在wpf对于图形的支持貌似很好啊,,至少比form好多了
      

  13.   


    那个原理应该是updateLayerWindow吧!其实我觉得可能是刷新频率太高了,所以导致效率低,应该需要重绘时再刷新界面!下面是我做的和你的对比!我的只有在列表滚动时才比较耗CPU!
      

  14.   

    嗯,因为我的是为了兼容原FORM控件,如果不显示原有控件的话,也没必要实时绘制了。后来我又改进了一下,缩小绘制区域,使得支持“脏区”处理,当然,通常做updatelayeredwindow的都不怎么用原有控件,都是自定义图像,所以耗CPU也主要是在要支持原控件的情况下。
      

  15.   

    里面有句DYD.DrawBP是不绘制原控件,这样就不是实时绘制的,只在需要时绘制,情况就和你的一样了。
      

  16.   

    是不是用了UpdateLayeredWindow就不能显示子控件了,,,要自己画控件了
      

  17.   

    如果是使用DYD.DrawBP,则不绘制原控件,因为参数只是一张bitmap,而如果使用DYD.StartDraw,则会绘制原控件。
      

  18.   

    UpdateLayeredWindow后,界面将不再响应paint,所以也就不再绘制,看不到了,DrawBP或者StartDraw会自动设置其为UpdateLayeredWindow样式,不需要再添加UpdateLayeredWindow样式代码。