【发布时间】:2015-09-15 09:50:36
【问题描述】:
我正在开发一个带有自定义标题栏的应用程序。表单设计要求它可以调整大小。请记住,它有一个自定义标题栏,使用正常路线删除自定义表单中的标题栏是行不通的。似乎 Windows 10 API 强制在标题栏上方的屏幕顶部保留一个小的白色“块”。
我的问题是:有没有人遇到过这个问题,你知道修复或解决方法,以便我们可以让表单在 Windows 10 中看起来正确吗?
这是我当前的代码:
Dim testform As New Form
testform.Width = 350
testform.Height = 100
testform.FormBorderStyle = FormBorderStyle.Sizable
testform.ControlBox = False
testform.Text = String.Empty
testform.Show()
由于另一个支持论坛的建议,我们测试了 API 问题,此后似乎已经用尽了帮助。我编译了我们现有的代码并在 Windows 7 机器上运行了可执行文件。在 Windows 7 机器上,表单可以正确打开,ClientRectangle 顶部和表单之间有 0 个空格。
【问题讨论】:
-
创建边框设置为无的表单,然后覆盖 WndProc() 并处理 WM_NCHITTEST 消息。根据光标当前相对于表单边缘的位置,将
m.Result设置为适当的边缘常数。这将允许无边界表单像一个相当大的表单一样调整大小...... -
@Idle_Mind - 感谢您的建议!我目前不在机器前,也不熟悉您建议的代码。我将研究这些功能并了解如何应用它们,并在我了解更多信息后尽快回复您。
-
我正在尝试找出这些
WndProc覆盖。我发现的每个示例似乎都在全球范围内影响代码。如何确保这仅影响多表单项目中的一个特定表单?