C# 允许标题栏双击以最大化对话框,但不允许使用“最大-最小”按钮
这是一个有点C的具体。可调整大小对话框的默认行为是,单击标题栏可使对话框最大化,再次双击可恢复大小。然而,我想要的是打开帮助按钮,这意味着最小化和最大化按钮是隐藏的,但我仍然希望标题栏双击行为。这可能通过一些子类化实现,但可能有人对此有一些好的想法。您应该能够处理WM\u NCHITTEST并查找HT\u标题,有关详细信息,请参阅C# 允许标题栏双击以最大化对话框,但不允许使用“最大-最小”按钮,c#,.net,winforms,C#,.net,Winforms,这是一个有点C的具体。可调整大小对话框的默认行为是,单击标题栏可使对话框最大化,再次双击可恢复大小。然而,我想要的是打开帮助按钮,这意味着最小化和最大化按钮是隐藏的,但我仍然希望标题栏双击行为。这可能通过一些子类化实现,但可能有人对此有一些好的想法。您应该能够处理WM\u NCHITTEST并查找HT\u标题,有关详细信息,请参阅 您需要覆盖WndProc才能处理这些消息,如中所示。您应该能够处理WM\u NCHITTEST并查找HT\u标题,请参阅以了解详细信息 您需要覆盖WndProc才能处
您需要覆盖WndProc才能处理这些消息,如中所示。您应该能够处理WM\u NCHITTEST并查找HT\u标题,请参阅以了解详细信息
您需要覆盖WndProc才能处理这些消息,如中所示。谢谢,这很有帮助,除了它需要被WM_nCluButtonDBLclk替换,当然这是假设您的用户没有切换按钮…我不确定操作系统是否会看到右键单击,但会发布WM_nCluButtonDBLclk消息。谢谢,这很有帮助,除了它需要被WM_nCluButtonDBLclk替换,当然这是假设您的用户没有切换按钮…我不确定操作系统是否会看到右键单击,但会发布WM_nCluButtonDBLclk消息。
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);
}
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);
}