gpt4 book ai didi

c# - 有没有一种方法可以在不使用 WM_GETMINMAXINFO 消息的情况下更改窗口的最大宽度?

转载 作者:可可西里 更新时间:2023-11-01 10:09:48 30 4
gpt4 key购买 nike

我想为外部应用程序的窗口(不是我的 C#/WinForms 程序的窗口)更改窗口可以调整到的强制 Windows 最大宽度。

SM_CXMAXTRACK 的 GetSystemMetrics 文档说:“具有标题和大小边框的窗口的默认最大宽度,以像素为单位。此指标指的是整个桌面。用户不能将窗口框架拖动到大于这些尺寸的尺寸。窗口可以通过处理覆盖此值WM_GETMINMAXINFO 消息。”

有没有办法在不处理 WM_GETMINMAXINFO 消息的情况下修改此 SM_CXMAXTRACK 值(系统范围或针对一个特定窗口)?可能是未记录的函数、注册表设置等?

(或者:MINMAXINFO.ptMaxTrackSize 的文档说:“此值基于虚拟屏幕的大小,可以通过系统指标 SM_CXMAXTRACK 和 SM_CYMAXTRACK 以编程方式获取。”也许有一种方法可以更改虚拟屏幕?)

谢谢

最佳答案

我所知道的限制窗口大小的唯一两种方法是处理 WM_GETMINMAXINFO,或者修改 WM_WINDOWPOSCHANGING 中 WINDOWPOS 结构中传递的值。这两种方法都涉及能够拦截和处理 Window 的消息。据我所知,没有外部设置可以限制窗口的大小。

如果您没有其他应用程序的源代码,我唯一可以建议的是编写一个程序,将代码注入(inject)其他应用程序(通过 SetWindowsHookEx 或 CreateRemoteThread),然后子类化窗口并处理那些消息。

关于c# - 有没有一种方法可以在不使用 WM_GETMINMAXINFO 消息的情况下更改窗口的最大宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2698113/

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