【发布时间】:2014-11-19 01:31:51
【问题描述】:
我正在通过 win32 API 使用 VC++ 创建一个窗口程序。我想创建一个椭圆形的窗口,如何实现这一点。
【问题讨论】:
标签: winapi visual-c++
我正在通过 win32 API 使用 VC++ 创建一个窗口程序。我想创建一个椭圆形的窗口,如何实现这一点。
【问题讨论】:
标签: winapi visual-c++
在您的 windows 样式属性中使用 WS_EX_LAYERED 并调用 UpdateLayeredWindow 可能是使用 Win32 API 控制自定义形状/透明窗口的最灵活方法。 MSDN上有一个很好的分解(虽然有点旧):
http://msdn.microsoft.com/en-us/library/ms997507.aspx
UpdateLayeredWindow 的官方文档: http://msdn.microsoft.com/en-us/library/ms633556(VS.85).aspx
【讨论】:
嗯,这么晚才回复,但我认为你知道这一点很重要。 有一个免费软件可以为 VB、C++、C# 和 Delphi 生成源代码。您所要做的就是在 photoshop 或任何画家中设计您的表格,让该软件检测您设计的形状并为您生成代码。您可以研究该代码或直接使用它。不要忘记阅读帮助,因为有一些关于编译的问题。快乐塑形。 http://www.byalexv.co.uk/
【讨论】:
使用SetWindowRgn 使窗口的绘图区域成为一个椭圆区域。这可以防止绘制到窗口超出椭圆的边界。
【讨论】:
使用 SetWindowRgn 的唯一问题是区域很难创建完全任意的形状。
Windows 2000 引入了分层窗口来解决这个问题,这就是 clippy 能够摆脱窗口限制的方式。
有关分层窗口的信息,请参阅http://msdn.microsoft.com/en-us/library/ms997507.aspx。
【讨论】: