我正在爲我工作的公司製作應用程序,我想知道如何自定義窗口的上下文菜單,如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. 如何將項目添加到窗口的上下文菜單中[僅用於pdf文件和doc文件]
- 7. 如何將多個項目添加到Kendo Scheduler的上下文菜單中?
- 8. 添加項目到Windows上下文菜單
- 9. 添加項目到標準的QWebView上下文菜單
- 10. 將項目添加到Windows中的桌面上下文菜單
- 11. 將項目添加到上下文菜單
- 12. Android將項目添加到全局上下文菜單
- 13. 將項目添加到瀏覽器上下文菜單?
- 14. 將項目添加到系統上下文菜單
- 15. 將項目添加到Visual Studio上下文菜單
- 16. 將菜單項添加到上下文菜單在VS2008 DSL
- 17. 將菜單項添加到默認的上下文菜單
- 18. 創建菜單項的彈出窗口(或上下文)菜單
- 19. 如何將上下文菜單項添加到工具欄?
- 20. 如何將自定義項目添加到chrome上下文菜單中?
- 21. 如何將項目添加到Mac OS X中的Finder上下文菜單?
- 22. 如何將插件項目添加到IntelliJ IDEA上下文菜單中?
- 23. Sitecore:更改特定項目下項目的上下文菜單?
- 24. 如何添加Windows右鍵單擊上下文菜單項?
- 25. Qt QTreeWidget上下文菜單:在其他o刪除項目下添加項目。
- 26. VS2010加載項,添加命令到上下文菜單?
- 27. 將'Select All'上下文菜單項添加到默認的TextBox菜單項
- 28. 添加右鍵/上下文菜單列表框項目在C#
- 29. 將項目添加到Google Chrome中的選項卡的上下文菜單
- 30. 將項目添加到Internet Explorer的右鍵單擊上下文菜單
你是指系統菜單嗎?我的意思是當你點擊窗口標題欄時彈出的那個? – UnLoCo 2012-08-08 23:11:49
當我點擊窗口標題欄(一個「關閉」,等) – JohnHoulderUK 2012-08-08 23:20:11
好吧,我已經做過那一次,我會嘗試回憶你的方法,我記得我用winapi來實現它 – UnLoCo 2012-08-08 23:21:49