1

カスタム コントロール ボックスでトップ バーを表すパネルを使用してカスタム フォームを作成し、FormBorderStyle を None に設定しました。

W7 スナップ機能が私のフォームで機能しないことに気付きました。これを修正する方法がわかりません。今回は、Google はあまり役に立ちません。

4

1 に答える 1

0

フォームの一部をタイトル バーのように動作させることで、これを修正できるはずです。

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
}
于 2012-10-15T13:26:29.203 に答える