gpt4 book ai didi

c++ - MoveWindow - 设置最小宽度/高度?

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:55 25 4
gpt4 key购买 nike

有什么方法可以在窗口上强制执行最小尺寸(宽度和高度)?

我见过不允许将窗口大小调整到某个点以下的应用程序,并且不会出现闪烁或其他任何情况。此外,如果分辨率低于这些最小值,它们将不允许最大化,而是将自己恢复到填满屏幕但从不最大化。

如何实现?

最佳答案

我自己还没有这样做过,但是这样的事情应该可行:

LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_SIZING:
{
RECT r = *((RECT *)lParam);

if (r.right - r.left > MAX_WIDTH)
((RECT *)lParam)->right = r.left + MAX_WIDTH;

if (r.bottom - r.top > MAX_HEIGHT)
((RECT *)lParam)->bottom = r.top + MAX_HEIGHT;

break;
}
}

return DefWindowProc (hwnd, msg, wParam, lParam);
}

基本上,如果窗口的矩形超出最大宽度或高度,它会对其进行调整并继续发送,因此不应引起闪烁。同样,我从未尝试过这个,所以我不完全确定。

正如 Luke 指出的那样,您可以通过处理 WM_GETMINMAXINFO 来设置默认值而不是重新发明轮子,从而节省大量工作。

关于c++ - MoveWindow - 设置最小宽度/高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10670228/

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