[DllImport("user32.dll")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
[DllImport("user32.dll")]
private static extern bool AppendMenu(IntPtr hMenu, Int32 wFlags, Int32 wIDNewItem, string lpNewItem);
public const Int32 WM_SYSCOMMAND = 0x112;
public const Int32 MF_SEPARATOR = 0x800;
public const Int32 MF_STRING = 0x0;
public const Int32 IDM_ABOUT = 10000;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
switch (m.WParam.ToInt32())
{
case IDM_ABOUT:
MessageBox.Show("您点击了窗体新添加的任务栏菜单","消息");
return;
default:
break;
}
base.WndProc(ref m);
}
private void Form1_Load(object sender, EventArgs e)
{
IntPtr sysMenuHandle = GetSystemMenu(this.Handle, false);
AppendMenu(sysMenuHandle, MF_SEPARATOR, 0, string.Empty);//添加一个分隔线
AppendMenu(sysMenuHandle, MF_STRING, IDM_ABOUT, "新菜单");
}
}
}