调用API AppendMenu ,具体看后面的代码.
------------------------------------
[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 = 1000;private void Form1_Load(object sender, System.EventArgs e)
{
IntPtr sysMenuHandle = GetSystemMenu(this.Handle, false);
AppendMenu(sysMenuHandle, MF_SEPARATOR, 0, string.Empty);
AppendMenu(sysMenuHandle, MF_STRING, IDM_ABOUT, "About...");
}protected override void WndProc(ref Message m)
{
if(m.Msg == WM_SYSCOMMAND)
switch(m.WParam.ToInt32())
{
case IDM_ABOUT :
MessageBox.Show("This is About dialog");
return;
default:
break;
}
base.WndProc(ref m);
}
------------------------------------
[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 = 1000;private void Form1_Load(object sender, System.EventArgs e)
{
IntPtr sysMenuHandle = GetSystemMenu(this.Handle, false);
AppendMenu(sysMenuHandle, MF_SEPARATOR, 0, string.Empty);
AppendMenu(sysMenuHandle, MF_STRING, IDM_ABOUT, "About...");
}protected override void WndProc(ref Message m)
{
if(m.Msg == WM_SYSCOMMAND)
switch(m.WParam.ToInt32())
{
case IDM_ABOUT :
MessageBox.Show("This is About dialog");
return;
default:
break;
}
base.WndProc(ref m);
}
解决方案 »
- C#自定义控件的集合属性怎么搞?求指点
- 数据库查询语句
- 马上要用C#做个关于铁路运营的项目,不知道要收集哪方面的材料,还请大家赐教
- 重装操作系统后,原来的Visio Studio也需要重装吧?有没有什么快点的方法?
- 选中DataGrid里的某行,代码怎么写?
- 搞一个进销存系统做成.exe文件后,想把它安装在没有装数据库的系统行不行啊?如果可以怎么做啊?
- asp.net中的treeview中选中父节点的多选框同时子节点也选中,取消选中父节点,子节点也取消.
- 如何让服务器不能使用ASP.Net浏览目录操作文件??
- 关于关闭窗口的问题!在线等待~~~~~
- 小妹妹求救,关于owc控件
- 你们好!我问一个简单的问题!希望你们能帮帮忙!50分。问题一解决就结帖!!
- 请熟悉C#和COM+的朋友进来,保证散分
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 SC_ABOUT = 1000;private void Form1_Load(object sender, System.EventArgs e)
{
IntPtr sysMenuHandle = GetSystemMenu(this.Handle, false);
AppendMenu(sysMenuHandle, MF_SEPARATOR, 0, string.Empty);
AppendMenu(sysMenuHandle, MF_STRING, SC_ABOUT, "&About...");
}protected override void WndProc(ref Message m)
{
if(m.Msg == WM_SYSCOMMAND)
switch(m.WParam.ToInt32())
{
case SC_ABOUT :
//TODO
MessageBox.Show("This is About dialog");
break;
}
base.WndProc(ref m);
}