gpt4 book ai didi

winapi - 何时(以及如何)布置 Win32 窗口的子窗口以响应大小调整?

转载 作者:行者123 更新时间:2023-12-02 06:31:19 24 4
gpt4 key购买 nike

当窗口大小调整时,Windows 会发送几条消息:

  • WM_GETMINMAXINFO
  • WM_ENTERSIZEMOVE
  • WM_EXITSIZEMOVE
  • WM_NCCALCSIZE
  • WM_SIZING
  • WM_SIZE
  • WM_WINDOWPOSCHANGING
  • WM_WINDOWPOSCHANGED

可能还有更多。

如果我想在调整窗口大小时重新定位子项,我应该在哪里以及如何这样做?
我正在寻找“最佳”方法——即陷阱最少且闪烁最少的方法。

我的当前方法是使用DeferWindowPosWM_NCCALCSIZE内执行所有重新定位。
不过,我也尝试过在 WM_WINDOWPOSCHANGED 内部处理它...但无论我在哪里处理它,似乎总是至少一个 当窗口绘制在中间状态时的“时刻”,其中窗口的大小已更改,但其内容尚未调整大小。

想要避免的另一种效果:已经移动的子元素之后移动它。我不希望用户因为我的更改而看到控件向下滑动,然后返回 - 它应该具有尽可能少的 transient 效果。

我这样做正确吗?有没有更好的地方可以放置窗外的 child ?

最佳答案

您应该在 WM_SIZE 消息中重新定位窗口,因为这是窗口在完成其任务之前收到的最后一个消息...要重新定位窗口,您可以使用 MoveWindow

关于winapi - 何时(以及如何)布置 Win32 窗口的子窗口以响应大小调整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com