允许标题栏双击以最大化对话框但没有最大最小按钮

时间:2009-02-19 10:48:28

标签: c# .net winforms

这是一个特定的C#。可调整大小的对话框的默认行为是标题栏单击最大化对话框,第二次双击恢复大小。但是,我想要的是打开“帮助”按钮,这意味着隐藏了最小化和最大化按钮,但我仍然希望标题栏双击行为。这可能通过一些子类化来实现,但也许有人对此有一些好主意。

3 个答案:

答案 0 :(得分:2)

您应该能够处理WM_NCHITTEST并查找HT_CAPTION,有关详细信息,请参阅 WM_NCHITTEST message

您需要覆盖WndProc才能处理这些消息,这在 Control.WndProc Method 中有所体现。

答案 1 :(得分:2)

    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 :(得分:0)

    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);
    }