如何在vs2005 C#中同时实现以下功能:
1.在不修改窗体的maximizebox的情况下,让窗体在运行时以最大化的模式出现。
2.当单击最大化按纽或双击标题栏时,使窗体只剩下标题栏,再按一下最大化按纽或再次双击标题栏时恢复。
3.窗体标题栏位置始终保持不变。
1.在不修改窗体的maximizebox的情况下,让窗体在运行时以最大化的模式出现。
2.当单击最大化按纽或双击标题栏时,使窗体只剩下标题栏,再按一下最大化按纽或再次双击标题栏时恢复。
3.窗体标题栏位置始终保持不变。
protected override void WndProc(ref Message m)
{
const int WM_NCLBUTTONDBLCLK = 0x00A3;
switch (m.Msg)
{
case WM_NCLBUTTONDBLCLK:
if (oldHeight <= 0)
{
oldHeight = ClientSize.Height;
ClientSize = new Size(ClientSize.Width, 0);
}
else
{
ClientSize = new Size(ClientSize.Width, oldHeight);
oldHeight = 0;
}
return;
}
base.WndProc(ref m);
}
窗体标题栏位置始终保持不变:设置窗体的StartPosition 属性.this.StartPosition = FormStartPosition.Manual;
单击最大化按纽或双击标题栏时,使窗体只剩下标题栏,实现这个功能。那你就写代码吧。楼上的那个方法也不错的。
this.Width=Screen.GetWorkingArea(this).Width;
this.Height = Screen.GetWorkingArea(this).Height;
this.Location = new Point(0, 0);当双击标题栏或单击最大化按纽时:
和昨天你发的那个一样处理,
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_NCLBUTTONDBLCLK||m.Msg ==WM_MAXIMIZEBOX)
{
.....
}只是我不知道那个最大化按钮的消息Id.
WM_SYSCOMMAND 消息 wParam 为 SC_MAXIMIZE