【问题标题】:How to create a ellipse shaped window with VC++ using win32 API如何使用 VC++ 使用 win32 API 创建椭圆形窗口
【发布时间】:2014-11-19 01:31:51
【问题描述】:

我正在通过 win32 API 使用 VC++ 创建一个窗口程序。我想创建一个椭圆形的窗口,如何实现这一点。

【问题讨论】:

    标签: winapi visual-c++


    【解决方案1】:

    在您的 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

    【讨论】:

      【解决方案2】:

      嗯,这么晚才回复,但我认为你知道这一点很重要。 有一个免费软件可以为 VB、C++、C# 和 Delphi 生成源代码。您所要做的就是在 photoshop 或任何画家中设计您的表格,让该软件检测您设计的形状并为您生成代码。您可以研究该代码或直接使用它。不要忘记阅读帮助,因为有一些关于编译的问题。快乐塑形。 http://www.byalexv.co.uk/

      【讨论】:

        【解决方案3】:

        使用SetWindowRgn 使窗口的绘图区域成为一个椭圆区域。这可以防止绘制到窗口超出椭圆的边界。

        【讨论】:

          【解决方案4】:

          使用 SetWindowRgn 的唯一问题是区域很难创建完全任意的形状。

          Windows 2000 引入了分层窗口来解决这个问题,这就是 clippy 能够摆脱窗口限制的方式。

          有关分层窗口的信息,请参阅http://msdn.microsoft.com/en-us/library/ms997507.aspx

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-11-02
            • 1970-01-01
            • 1970-01-01
            • 2018-07-03
            • 2017-12-22
            • 2016-05-16
            • 1970-01-01
            • 2015-07-27
            相关资源
            最近更新 更多