首页 > 代码库 > 自定义标题栏右键菜单
自定义标题栏右键菜单
摘自:http://stackoverflow.com/questions/4615940/how-can-i-customize-the-system-menu-of-a-windows-form
在单击窗体左上角图标,或标题栏右击时,显示自定义菜单
Imports System.Windows.Forms Imports System.Runtime.InteropServices Public Class CustomForm Inherits Form ‘ P/Invoke constants Private Const WM_SYSCOMMAND As Integer = &H112 Private Const MF_STRING As Integer = &H0 Private Const MF_SEPARATOR As Integer = &H800 ‘ P/Invoke declarations <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> Private Shared Function GetSystemMenu(hWnd As IntPtr, bRevert As Boolean) As IntPtr End Function <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> Private Shared Function AppendMenu(hMenu As IntPtr, uFlags As Integer, uIDNewItem As Integer, lpNewItem As String) As Boolean End Function <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> Private Shared Function InsertMenu(hMenu As IntPtr, uPosition As Integer, uFlags As Integer, uIDNewItem As Integer, lpNewItem As String) As Boolean End Function ‘ ID for the About item on the system menu Private SYSMENU_ABOUT_ID As Integer = &H1 Public Sub New() End Sub Protected Overrides Sub OnHandleCreated(e As EventArgs) MyBase.OnHandleCreated(e) ‘ Get a handle to a copy of this form‘s system (window) menu Dim hSysMenu As IntPtr = GetSystemMenu(Me.Handle, False) ‘ Add a separator AppendMenu(hSysMenu, MF_SEPARATOR, 0, String.Empty) ‘ Add the About menu item AppendMenu(hSysMenu, MF_STRING, SYSMENU_ABOUT_ID, "&About…") End Sub Protected Overrides Sub WndProc(ByRef m As Message) MyBase.WndProc(m) ‘ Test if the About item was selected from the system menu If m.Msg = WM_SYSCOMMAND AndAlso m.WParam.ToInt32 = SYSMENU_ABOUT_ID Then MessageBox.Show("Custom About Dialog") End If End Sub End Class
自定义标题栏右键菜单
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。