我制作了一个带有面板的自定义表单,用自定义控件框表示顶部栏,并将FormBorderStyle设置为无。
现在我注意到W7 Snap功能在我的表单上不起作用。 我不知道如何解决这个问题,谷歌此时并没有真正帮到你。
答案 0 :(得分:0)
您应该能够通过使表单的某些部分像标题栏一样来解决此问题。
为此,请处理WM_NCHITTEST
message并返回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
}