gpt4 book ai didi

c# - WinForms:控件的最大大小为 65535 - 解决方法?

转载 作者:太空狗 更新时间:2023-10-30 00:11:31 25 4
gpt4 key购买 nike

在 WinForms 和 C# 中,我似乎无法创建宽度超过 65535 的控件。如果我将其设置为 70.000,该值将重置为 65535。使用 ILSpy 挖掘 Control.Size 的源代码,我无法立即找到负责限制大小的代码。

那么这是 Win32 API 或 Windows 窗体的限制吗?有什么办法解决这个问题,例如与非托管互操作?

我需要这么大的控件的原因是我在上面绘制了很长的音频文件的音乐波形。 (是的,我可以直接绘制波形,无需包含控件;但这需要大量重构)。我不是在这里谈论绘图代码。显然只需要绘制可见部分,但问题是我想要一个宽度达 200.000 像素的控件。

最佳答案

这是winapi限制。一个非常困难的问题是,鼠标位置是通过 WM_MOUSEMOVE 消息报告的,鼠标位置被打包到 LPARAM 参数中。 X 位置使用 16 位,Y 位置使用 16 位。

你必须处理它。它不是对面板的 AutoScrollMinSize 属性的限制。无论如何,这就是您在这种情况下总是使用的,在 AutoScrollPosition 开始绘画。

关于c# - WinForms:控件的最大大小为 65535 - 解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499368/

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