我制作了一个带有面板的自定义表单,用自定义控件框表示顶部栏,并将 FormBorderStyle 设置为 None。
现在我注意到 W7 Snap 功能在我的表单上不起作用。我不知道如何解决这个问题,而谷歌这次并没有真正提供帮助。
我制作了一个带有面板的自定义表单,用自定义控件框表示顶部栏,并将 FormBorderStyle 设置为 None。
现在我注意到 W7 Snap 功能在我的表单上不起作用。我不知道如何解决这个问题,而谷歌这次并没有真正提供帮助。
您应该能够通过使表单的某些部分表现得像标题栏来解决此问题。
为此,请处理WM_NCHITTEST
消息并返回HTCAPTION
。
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
switch (m.Msg) {
case 0x84: //WM_NCHITTEST
var point = new Point(m.LParam.ToInt32());
if (point is somewhere)
m.Result = new IntPtr((int)HitTest.Caption);
break;
}
}
enum HitTest {
Caption = 2,
Transparent = -1,
Nowhere = 0,
Client = 1,
Left = 10,
Right = 11,
Top = 12,
TopLeft = 13,
TopRight = 14,
Bottom = 15,
BottomLeft = 16,
BottomRight = 17,
Border = 18
}