【发布时间】:2012-02-23 12:33:31
【问题描述】:
我通过在消息处理程序中处理 WM_NCPAINT 消息在我的应用程序中绘制自定义边框。问题是即使设置了窗口区域,我的应用程序的角落也不是“平滑”的。
我想也许我可以只获得屏幕的 HDC 并在角落内插入像素以获得半透明效果,但看到当用户移动窗口时我必须不断地重新绘制边框,我不要认为这是一个有效的选择。
有谁知道模拟半透明或至少平滑角落附近的边界的方法?
下面是角落的样子:
提前致谢。
【问题讨论】:
我通过在消息处理程序中处理 WM_NCPAINT 消息在我的应用程序中绘制自定义边框。问题是即使设置了窗口区域,我的应用程序的角落也不是“平滑”的。
我想也许我可以只获得屏幕的 HDC 并在角落内插入像素以获得半透明效果,但看到当用户移动窗口时我必须不断地重新绘制边框,我不要认为这是一个有效的选择。
有谁知道模拟半透明或至少平滑角落附近的边界的方法?
下面是角落的样子:
提前致谢。
【问题讨论】:
使用Layered Window。这适用于 Windows 2000 及更高版本。
如果您想要 Aero Glass 效果(Vista 及以上),那么this article 可以很好地概述历史绘画技术以及使用桌面窗口管理器的详细信息。
【讨论】: