【问题标题】:How do you programmatically resize and move windows with the Windows API?如何使用 Windows API 以编程方式调整窗口大小和移动窗口?
【发布时间】:2009-03-28 13:09:13
【问题描述】:

如何使用 Windows API 以编程方式调整窗口大小和移动窗口?

场景是:我想垂直平铺两个窗口(80%/20% 宽度比例)。

【问题讨论】:

    标签: windows winapi


    【解决方案1】:

    对于同时定位两个(或更多)窗口的无闪烁,最好的办法是使用 BeginDeferWindowPos()DeferWindowPos()@987654323 @。在你的情况下,由于你同时移动两个,这是你最好的选择。

    您还可以考虑三个较旧、更简单的函数:SetWindowPos()MoveWindow()AdjustWindowRectEx()

    【讨论】:

    • SetWindowPlacement 是另一个可以做到这一点的函数。
    【解决方案2】:

    在 Windows API 中使用 SetWindowPos()

    给定一个 HWND,您可以更改 z 顺序、位置(左上角)、大小以及许多其他标志(如显示或隐藏、使其成为活动窗口或不成为活动窗口等)。

    【讨论】:

      【解决方案3】:

      您正在寻找SetWindowPosMoveWindowAdjustWindowRectEx 之一。

      您能否更具体地说明该场景,以便我们推荐最合适的 API?

      【讨论】:

      • AdjustWindowRectEx 不会移动或调整窗口大小。它用于计算使窗口的客户区与给定矩形匹配所需的窗口大小和位置。
      【解决方案4】:

      SetWindowPos 或 MoveWindow 将为您完成此操作

      【讨论】:

        【解决方案5】:

        在您的 SDK 文档中查找 MoveWindow

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多