解决方案 »
- MFC中将RichEdit控件拉到对话框上为什么运行不弹出窗口
- 关于ComboBox 的问题
- 模拟POST数据失败,始终不解其中原因,请高人指点
- 高手你在哪里?急寻高手!!!!
- 如何把一些图片(.jpg)图标放在DLL中,让几个程序都可以用这个DLL
- 如何实现模拟鼠标点击TRAYICON的操作?
- 哪位有DirectX SDK的好心人帮忙编译一下,谢谢!
- 哪家的收费邮箱最稳定????(给75分,在另外贴给你)
- 要插入ActiveX控件 结果 显示为灰色
- 如何实现用API来代替ISTVIEW1.LISTITEMS.ADD语句?
- MFC CHtmlView类得到网页里面的输入框是否具有焦点
- VS2005 不能创建悬浮框怎么办?
一个很粗鲁的解决方法: 创建一个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来实现你圆形窗口的平滑阴影,这样一样看不出锯齿。