Возможность двойного щелчка по строке заголовка, чтобы развернуть диалоговое окно, но без кнопок max-min - PullRequest
1 голос
/ 19 февраля 2009

Это немного специфично для C #. Поведение диалогового окна с изменяемым размером по умолчанию состоит в том, что щелчок в строке заголовка максимизирует диалоговое окно, а второй двойной щелчок восстанавливает размер. Однако я хочу, чтобы кнопка «Справка» была включена, а это означает, что кнопки свертывания и сворачивания скрыты, но мне все равно хотелось бы, чтобы в строке заголовка было поведение двойного щелчка. Это может быть достигнуто с помощью некоторого подкласса, но, возможно, у кого-то есть хорошие идеи на этот счет.

Ответы [ 3 ]

2 голосов
/ 19 февраля 2009
    private const int WM_NCLBUTTONDBLCLK = 0xA3;

    protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case WM_NCLBUTTONDBLCLK:
                if (this.WindowState==System.Windows.Forms.FormWindowState.Maximized)
                    this.WindowState=System.Windows.Forms.FormWindowState.Normal;
                else if (this.WindowState == System.Windows.Forms.FormWindowState.Normal)
                    this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
                return;
        }
        base.WndProc(ref m);
    }
2 голосов
/ 19 февраля 2009

Вы должны иметь возможность обрабатывать WM_NCHITTEST и искать HT_CAPTION, подробности см. В WM_NCHITTEST .

Вам потребуется переопределить WndProc, чтобы иметь возможность обрабатывать эти сообщения, это продемонстрировано в Control.WndProc Method .

0 голосов
/ 09 декабря 2010
    private const int WM_NCHITTEST = 0x0084;

    // Let Windows drag this form for us
    protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case WM_NCHITTEST:
                m.Result = (IntPtr)2;   // HTCLIENT
                return;
        }

        base.WndProc(ref m);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...