我正在为我工作的公司制作应用程序,我想知道如何自定义窗口的上下文菜单,如PuTTY's(又名,它有“新会话...”等等。)。我已经遍布谷歌,找不到我正在寻找的答案。如何添加更多项目到窗口上下文菜单
回答
使一个新的模块,并在上面
添加Imports System.Runtime.InteropServices
然后宣布这
<Flags()> _
Public Enum MenuFlags As Integer
MF_BYPOSITION = 1024
MF_REMOVE = 4096
MF_SEPARATOR = 2048
MF_STRING = 0
End Enum
<DllImport("user32.dll", CallingConvention:=CallingConvention.Cdecl)> _
Public Function GetSystemMenu(ByVal hWnd As IntPtr, Optional ByVal bRevert As Boolean = False) As IntPtr
End Function
<DllImport("user32.dll", CharSet:=CharSet.Auto)> _
Public Function AppendMenu(ByVal hMenu As IntPtr, ByVal uFlags As MenuFlags, ByVal uIDNewItem As Int32, ByVal lpNewItem As String) As Boolean
End Function
然后在你的窗体加载处理程序添加以下代码
Dim sysmenu As IntPtr = GetSystemMenu(Me.Handle)
AppendMenu(sysmenu, MenuFlags.MF_STRING, &H1FFF, "Hello")
然后,为了能够要捕获用户点击您的新菜单项,您必须实现此功能,该功能将捕获所有消息,只需将其添加到您的表单代码
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_SYSCOMMAND Then
If m.WParam.ToInt32 = &H1FFF Then
' your menu item is clicked, call a function here
End If
End If
MyBase.WndProc(m)
End Sub
感谢您的代码! – JohnHoulderUK 2012-08-09 00:18:51
@GtoXic:这段代码只在菜单的底部添加了一个新项目,我将进行编辑,以便您可以获得有关如何将菜单项放置在任何位置的解决方案 – UnLoCo 2012-08-09 00:20:44
http://stackoverflow.com/questions/6952343 /需要的帮助,在窗口-API insertmenuitem – UnLoCo 2012-08-09 00:31:58
- 1. 如何添加项目到所有窗口的窗口菜单?
- 2. 添加多个项目到上下文菜单
- 3. 如何将动态项目添加到上下文菜单?
- 4. 如何添加在上下文菜单中添加更多菜单?
- 5. 如何将不同的菜单项添加到多个上下文菜单?
- 6. 如何将不同的菜单项添加到多个上下文菜单?
- 7. 如何将项目添加到窗口的上下文菜单中[仅用于pdf文件和doc文件]
- 8. 如何将新项目添加到Visual Studio 2010中的添加新项目到项目上下文菜单?
- 9. 如何将多个项目添加到Kendo Scheduler的上下文菜单中?
- 10. 将项目添加到上下文菜单
- 11. 添加项目到标准的QWebView上下文菜单
- 12. 添加新项目到Awesomium(Rigth点击)上下文菜单
- 13. 将项目添加到Visual Studio上下文菜单
- 14. 将项目添加到Windows中的桌面上下文菜单
- 15. 添加项目到Windows上下文菜单
- 16. 将项目添加到浏览器上下文菜单?
- 17. Android将项目添加到全局上下文菜单
- 18. 在FireFox中添加项目到上下文菜单
- 19. 将项目添加到系统上下文菜单
- 20. TinyMCE v4将自定义项目添加到上下文菜单
- 21. 将菜单项添加到上下文菜单
- 22. 将菜单项添加到上下文菜单在VS2008 DSL
- 23. 将菜单项添加到默认的上下文菜单
- 24. 将自定义菜单项添加到Finder上下文菜单
- 25. 添加描述性菜单项到WPF上下文菜单
- 26. 创建菜单项的弹出窗口(或上下文)菜单
- 27. 如何将上下文菜单项添加到工具栏?
- 28. 如何将条目添加到Nautilus的上下文菜单中?
- 29. 如何将菜单项添加到webview的上下文操作栏菜单中
- 30. WPF XAML - 将上下文菜单项绑定到主窗口DataContext
你是指系统菜单吗?我的意思是当你点击窗口标题栏时弹出的那个? – UnLoCo 2012-08-08 23:11:49
当我点击窗口标题栏(一个“关闭”,等) – JohnHoulderUK 2012-08-08 23:20:11
好吧,我已经做过那一次,我会尝试回忆你的方法,我记得我用winapi来实现它 – UnLoCo 2012-08-08 23:21:49