解决方案 »

  1.   

    用clip region肯定有锯齿。 
    一个很粗鲁的解决方法: 创建一个32位bitmap,用黑白色smooth draw一个一样的圆,然后设置32位bitmap的alpha channel和颜色值一样,然后用你窗口的颜色重画一遍这个圆(也是smoothdraw),再创建一个一样大小的window叠放在你的window下面,通过UpdateLayeredWindow使用刚才创建的32位bitmap来设置新创建window的形状,这样你window锯齿部分就被新建window的smooth edge挡住了。使用一个新创建window是因为UpdateLayeredWindow设置的窗口不接收windows消息。所以上面不能有子窗口和所有其他控件。不过如果你的region窗口本来就不需要子控件的话可以直接用UpdateLayeredWindow设置无锯齿的异型窗口。
    当然你也可以通过新创建一个大一圈的Layered Window和大一圈的32位bitmap来实现你圆形窗口的平滑阴影,这样一样看不出锯齿。
      

  2.   

    用GDIPlus绘制,就能比较好的抗锯齿了.