我正在爲我工作的公司製作應用程序,我想知道如何自定義窗口的上下文菜單,如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