gpt4 book ai didi

c - 获取窗口的当前尺寸,无论最小/正常/最大化状态如何

转载 作者:行者123 更新时间:2023-11-30 15:08:06 30 4
gpt4 key购买 nike

我正在尝试获取“顶级”HWND 的尺寸。即,我想要 Firefox/Windows 资源管理器等的主 HWND 的当前尺寸。窗口。

如果窗口最小化,

GetWindowRect() 将不起作用。 GetWindowPlacement() 适用于大多数情况(包括最小化),但它返回窗口的 SW_SHOWNORMAL 尺寸。因此,如果我将 Windows 资源管理器的大小调整为 100 x 100 像素,最大化窗口,然后调用 GetWindowPlacement(),我将获得 100x100 的 SW_SHOWNORMAL 尺寸。我想要最大化尺寸,即窗口的当前尺寸。

有没有一种通用的 WinAPI 函数可以满足我所有的情况?即,告诉我当前窗口可见时的尺寸(无论它是否现在)?如果不是,我想我将不得不调用 GetWindowPlacement() 来确定窗口是否最小化。如果为 true,则使用正常尺寸,否则调用 GetWindowRect()

最佳答案

GetWindowPlacement将使用最小化和最大化位置以及窗口的正常位置填充 WINDOWPLACEMENT 结构。

值得注意的是,返回的窗口位置位于工作区坐标中,而不是屏幕坐标中,因此应该在接受工作区坐标而不是屏幕坐标的调用中使用。

实际上,这意味着如果用户将任务栏放置在屏幕顶部,则“0,0”对应于任务栏下方的左上角像素。

就获取最大化时窗口的尺寸而言,它们将对应于窗口最大化时的监视器的尺寸。在这种情况下,似乎没有一个 API 调用可以回答这个问题,因为这个问题不再有意义了:为什么你想要最大化时的最大化大小,而最小化时的“正常”大小?用户同样有可能将窗口恢复到最大化或正常状态。

关于c - 获取窗口的当前尺寸,无论最小/正常/最大化状态如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37676311/

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