精华内容
下载资源
问答
  • VB 弹出式菜单

    2012-05-01 14:36:39
    自己编写的弹出式菜单,阅读文本信息,并显示
  • vb语言实现的功能 实现的窗体和文本框的下拉和弹出式菜单
  • 内容索引:VB源码,界面编程,菜单 VB弹出式窗体快捷菜单制作示例,这种菜单是怎么制作的呢?其实非常简单,不懂的请下载这个示例参阅一下,一看就会了埃
  • 在Windows应用程序中,利用弹出式菜单(Pop-up Menu)是...PopupMenu方法(Method)是VB6.0内置的实现弹出式菜单的方法,用于在MDIForm或Form等对象中的鼠标点位置或指定位置显示弹出式菜单。其语法为:Object.Popu...

    在Windows应用程序中,利用弹出式菜单(Pop-up Menu)是增加软件易用性的一个重要方式。本文将向大家介绍在VB6.0中实现弹出式菜单的几种方法。

    利用VB6.0内置的PopupMenu方法

    PopupMenu方法(Method)是VB6.0内置的实现弹出式菜单的方法,用于在MDIForm或Form等对象中的鼠标点位置或指定位置显示弹出式菜单。其语法为:
    Object.PopupMenu menuname, flags, x, y, boldcommand
    说明如下:


    Object

    可选项,可以是PropertyPage, Usercontrol, UserDocument, Form, MDIForm等对象之一,如果该部分省略,则具有焦点(Focus)的Form对象将作为此Object。

    Menuname

    必须,将被显示的弹出式菜单的名称,此菜单必须至少包含一个子菜单

    Flags

    可选项,一个值或常数,设置弹出式菜单显示的位置及行为方式,定义如下:

    常数(位置)

    说明

    VbPopupMenuLeftAlign

    0

    (缺省值)弹出式菜单左对齐于X

    VbPopupMenuCenterAlign

    4

    菜单居中于X

    VbPopupMenuRightAlign

    8

    弹出式菜单右对齐于X

    常数(行为)

    说明

    VbPopupMenuLeftButton

    0

    (缺省值)只能通过点击鼠标左键来选择弹出式菜单的菜单项

    VbPopupMenuRightButton

    2

    可以通过点击鼠标的左键或右键来选择弹出式菜单的菜单项

    X

    可选项,设定显示弹出式菜单的X坐标,如省略,鼠标点坐标将被作为X使用

    Y

    可选项,设定显示弹出式菜单的Y坐标,如省略,鼠标点坐标将被作为Y使用

    Boldcommand

    可选项,定义弹出式菜单中某一个菜单项的名称,该菜单项文字将被加粗显示,如省略该项,则无菜单项文字被加粗。

    通过设置对象(Object)的Scalemode属性来规定X,Y坐标的度量单位,X,Y坐标设定弹出式菜单在对象(Object)中显示的相对位置,如果省略X,Y,则弹出式菜单将显示在当前鼠标点位置。
    当用PopupMenu方法激活弹出菜单后,要等到用户选择了弹出菜单中的某个菜单项之后(这种情况下,还要先运行被选择菜单项的相应代码)或在表单其它位置单击鼠标左键消除弹出菜单后,后面的代码才能继续执行。并且,一次只能激活一个弹出式菜单,当已经有一个弹处菜单被激活或已经有一个下拉菜单被打开时,对PopupMenu方法的调用将被忽略。
    下面的例子演示当用户在表单上点击鼠标右键时,在鼠标点处显示弹出式菜单。欲试验此例子,建立一个表单,在表单中建立一个菜单控件,将其命名为mnuFile(mnuFile菜单至少包含一个子菜单)。在表单的声明(Declaration)区域加入如下代码:
    Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton Then
    PopupMenu mnuFile
    End If
    End Sub
    PopupMenu方法是VB6.0内置的方法,使用起来方便简单,但该方法有一个不足,即当点击鼠标弹出菜单后,如果不选择菜单项而在其他位置点击鼠标,则菜单并不会在新的鼠标点处显示。这虽然不至于影响应用程序的功能,但却降低了易用性。

    利用Windows API函数

    除了利用VB6.0内置的PopupMenu方法来实现弹出式菜单外,还可以利用Windows 的应用程序接口(API)函数中的菜单函数来实现弹出式菜单。
    利用API的菜单函数实现弹出式菜单与VB6.0内置的PopupMenu方法相比,要复杂一些,但却弥补了PopupMenu方法的不足点,即当弹出菜单后不选择菜单项而在其它位置点击鼠标时,弹出式菜单会立即出现在那个位置。并且利用API函数,编程者可以更加灵活、自由度更大地实现弹出式菜单。
    本文用到的API函数为:GetMenu, GetSubMenu, GetMenuItemInfo, InsertMenuItem, CreatePopupMenu, DestroyMenu, TrackPopupMenu。下面先简单介绍一下这几个函数。


    GetMenu

    GetMenu函数返回指定窗口的菜单的句柄

    语法:GetMenu ( HWnd )

    参数的意义

    HWnd

    窗口句柄,该窗口所包含的菜单的句柄将被函数返回

    GetSubMenu

    GetSubMenu函数返回下拉菜单或被指定菜单项激活的子菜单的句柄

    语法:GetSubMenu ( hMenu, nPos )

    参数的意义

    Hmenu

    菜单句柄

    NPos

    定义激活下拉菜单或子菜单的菜单项在所给菜单中的相对位置(起始为0)

    GetMenuItemInfo

    GetMenuItemInfo函数返回菜单项的信息

    语法:GetMenuItemInfo ( hMenu, uItem, fByPosition, lpmii )

    参数的意义

    Hmenu

    包含相应菜单项的菜单的句柄

    Uitem

    欲获得其信息的菜单项的标识号或位置,该参数的具体意义由fByPositon参数的值来决定

    FbyPosition

    用来定义uItem参数的意义,如果此参数的值为False,则uItem参数为菜单项的标识号,否则,为菜单项的位置

    Lpmii

    指向MENUITEMINFO结构变量的指针,该变量指定了需要返回菜单项的哪些信息,并接收这些信息。MENUITEMINFO结构各元素说明如下:

    CbSize

    结构占用的字节数

    Fmask

    设置欲获得结构中哪些元素的值

    Ftype

    菜单项类型

    Fstate

    菜单项状态

    WID

    标识菜单项的16位值

    HsubMenu

    与菜单项关联的下拉菜单或子菜单的句柄

    HbmpChecked

    菜单项被选中时,显示在菜单项旁边的位图的句柄,该值为Null时使用缺省位图

    HbmpUnchecked

    菜单项未被选中时,显示在菜单项旁边的位图的句柄,该值为Null则不使用位图

    DwTypeData

    菜单项文字,长度在元素cch中给出

    Cch

    菜单项文字长度

    InsertMenuItem

    InsertMenuItem函数在一菜单的指定位置插入一个新菜单项

    语法:InsertMenuItem ( hMenu, uItem, fByPosition, lpmii )

    参数的意义

    Hmenu

    新菜单项将被插入的菜单的句柄

    Uitem

    新菜单项将被插入在其之前的菜单项的标识号或位置,该参数的具体意义由fByPositon参数的值来决定

    FbyPosition

    用来定义uItem参数的意义,如果此参数的值为False,则uItem参数为菜单项的标识号,否则,为菜单项的位置

    Lpmii

    指向MENUITEMINFO结构变量的指针,该变量包含了新菜单项的信息

    CreatePopupMenu

    CreatePopupMenu函数生成一个下拉菜单、子菜单或弹出式操单,菜单在初始时是空的,可以使用InsertMenuItem函数来插入菜单项

    语法:CreatePopupMenu ( )

    DestroyMenu

    DestroyMenu函数清除指定的菜单并释放该菜单所占用的内存空间

    语法:DestroyMenu ( hMenu )

    参数的意义

    HMenu

    将被清除的菜单的句秉

    TrackPopupMenu

    TrackPopupMenu函数在指定位置显示一个弹出式菜单,并跟踪菜单中菜单项的选择,弹出菜单可以出现在屏幕的任何位置

    语法:TrackPopupMenu (hMenu, uFlags, x, y, nReserved, hWnd, *PrcRect)

    参数的意义

    HMenu

    被显示的弹出式菜单的句柄,此句柄可通过调用CreatePopupMenu函数生成一个新弹出式菜单获得,或调用GetSubMenu函数获得一个现有某子菜单的句柄

    UFlags

    一组标识符来指定函数的选项,意义如下

    常数

    说明

    TPM_CENTERALIGN

    4

    设置该值,弹出式菜单水平居中于X

    TPM_LEFTALIGN

    0

    设置该值,弹出式菜单左对齐于X

    TPM_RIGHTALIGN

    8

    设置该值,弹出式菜单右对齐于X

    TPM_LEFTBUTTON

    0

    设置该值,用户只能通过鼠标左键选择菜单项

    TPM_RIGHTBUTTON

    2

    设置该值,用户既可以通过鼠标左键也可以通过鼠标右键选择菜单项

    X

    定义弹出菜单的水平位置(屏幕坐标系)

    Y

    定义弹出菜单的垂直位置(屏幕坐标系)

    Nreserved

    保留,必须为0

    HWnd

    拥有弹出式菜单的窗口的句柄,该窗口接收所有从该菜单传来的消息,该窗口在函数返回之前不从菜单接收WM_COMMAND消息
    如在uflags参数中定义了TPM_NONOTIFY,函数不向HWnd定义的窗口发送消息,但仍需向HWnd传递一个窗口句柄,它可以是所在应用程序中的任何窗口句柄

    PrcRect

    忽略

    三.利用工程(Project)中其他表单的菜单作为当前表单的弹出菜单

    如果表单(Form)的菜单中不包含弹出菜单需要的菜单项,那么可以新建一个表单,在新表单中建立一个与所需弹出菜单完全一样的菜单及相应代码。然后在MouseDown事件中利用GetMenu和GetSubMenu函数来获得新表单中的菜单句柄,再利用TrackPopupMenu函数激活弹出式菜单。
    下面的例子演示当在表单中单击鼠标右键时,在鼠标点位置显示弹出式菜单,此弹出式菜单是通过调用另外一个表单中的菜单得到的。要试验这个例子,需要创建两个表单,一个命名为Form1,另一个命名为MnuForm。在MnuForm中加入一个菜单控件,将其命名为MnuFile(MnuFile中至少要包含一个子菜单)。添加一个模块(Module),在模块的声明(Declaration)区域添加如下代码:

    Public Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Public Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As RECT) As Long

    在Form1的声明(Declaration)区域添加如下代码:


    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Dim IX As Integer, IY As Integer
        Dim hMenu As Long, hSubMenu As Long, R As Integer
        Dim menRect As RECT
        If Button = vbRightButton Then
            ScaleMode = TWIPS
            IX = (X + Left) \ Screen.TwipsPerPixelX
            IY = (Y + Top) \ Screen.TwipsPerPixelY
            hMenu = GetMenu(MnuForm.hwnd)     '获得MnuForm中的菜单句柄保存于hMenu
            hSubMenu = GetSubMenu(hMenu, 0)   '获得hMenu中的第一个子菜单的句柄保存于hSubMenu
            R = TrackPopupMenu(hSubMenu, 2, IX, IY, 0, MnuForm.hwnd, menRect) '激活弹出菜单
        End If
    End Sub

    利用表单中的菜单项实现弹出式菜单

    如果表单的菜单中包含了弹出菜单所需的菜单项,那么可以通过CreatePopupMenu函数生成一个空的pop-up menu,然后利用GetMenuItemInfo函数从表单的菜单中获得相应菜单项的内容,再用InsertMenuItem函数将菜单项加入到pop-up menu中,最后使用TrackPopupMenu函数激活弹出式菜单。
    下面的例子演示当在表单中单击鼠标右键时,在鼠标点位置显示弹出式菜单,此弹出式菜单是通过调用表单中的若干菜单项得到的。要试验这个例子,需要创建一个表单。在表单中加入一个菜单控件,将其命名为MnuFile,在MnuFile中至少要包含一个子菜单,将其命名为MnuOpen,MnuOpen的Caption值为“&Open”。添加一个模块(Module),在模块的Declaration区域添加如下代码:

    Public Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    Public Type MENUITEMINFO
        cbSize As Long
        fMask As Long
        fType As Long
        fState As Long
        wID As Long
        hSubMenu As Long
        hbmpChecked As Long
        hbmpUnchecked As Long
        dwItemData As Long
        dwTypeData As String
        cch As Long
    End Type
    Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Public Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As RECT) As Long
    Public Declare Function CreatePopupMenu Lib "user32" () As Long
    Public Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
    Public Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, lpMenuItemInfo As MENUITEMINFO) As Long
    Public Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long

    在表单的声明(Declaration)区域添加如下代码:


    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Dim IX As Integer, IY As Integer
        Dim hMenu As Long, hSubMenu As Long, PMenu As Long
        Dim theR As Long
        Dim menRect As RECT
        Dim MnuItmInfo As MENUITEMINFO, TempMnuItmInfo As MENUITEMINFO
        Dim Dummy As Variant
        If Button And vbRightButton Then
            ScaleMode = vbTwips
            IX = (X + Left) \ Screen.TwipsPerPixelX
            IY = (Y + Top) \ Screen.TwipsPerPixelY
            PMenu = CreatePopupMenu()    '生成一个空弹出菜单
            hMenu = GetMenu(Form1.hwnd) '获得Form1的菜单句柄保存于hMenu
            hSubMenu = GetSubMenu(hMenu, 0) '获得hMenu的第一个子菜单的句柄保存于hSubMenu
            With TempMnuItmInfo
                .cbSize = Len(TempMnuItmInfo)
                .dwTypeData = Space$(10)
                .fMask = 126 '获得所有元素的值
                .cch = 10
            End With
            MnuItmInfo = TempMnuItmInfo
            Dummy = GetMenuItemInfo(hSubMenu, 0, True, MnuItmInfo) '获得hSubMenu第一个菜单
            Dummy = InsertMenuItem(PMenu, 0, True, MnuItmInfo) '项的信息,将其插入到PMenu
            .
            .
            .
            MnuItmInfo = TempMnuItmInfo
            Dummy = GetMenuItemInfo(hSubMenu, n, True, MnuItmInfo) '获得hSubMenu第n-1个菜
            Dummy = InsertMenuItem(PMenu, n, True, MnuItmInfo) '单项的信息,将其插入到PMenu
            theR = TrackPopupMenu(PMenu, 2, IX, IY, 0, Form1.hwnd, menRect) '激活弹出菜单
            Dummy = DestroyMenu(PMenu)
        End If
    End Sub

    相关参考

    vb屏蔽文本框点右键时的弹出菜单

    VB 小技巧自定义TextBox文本框右键菜单

    VB 自启动建立右键菜单

    VB在菜单上增加图标

    vbListBox 之中点击右键弹出菜单

    【引用】在VB6.0中实现弹出式菜单的几种方法

    vb中实现真正锁定的带自定义菜单的文本控件

    记录一下:在菜单上添加自绘图形的例子(VB6代码)


    VB相关

    vbline的用法[]

    画图工具的VB实现

    VB 一个获得自己外网 IP 地址的程序代码

    VB程序中实现IP地址子网掩码网关DNS的更改  []

    VB 中应用 FSO 对象模型介绍(摘自网络)

    [] VbFSO 对象的介绍

    VB 画坐标轴

    VB 二进制文件的操作

    [VB]BMPJPGVBKeyCode常数用法

    vb实时曲线的绘制和保存

    VB操作EXCEL

    vb初学回顾:最大公约数 最小公倍数 素数求取

    vb 关于窗口样式的API以及处理文本的API参考

    【引用】在VB6.0中实现弹出式菜单的几种方法

    【引用】URLDownloadToFile_VB下载文件!

    利用WinRar压缩和解压缩文件

    VB 剪切板

    VB实现指示窗口中拖动方框的程序

    VB绘制走动的表针

    如何用VB制作DLL文件

    【引用】VB修改IP地址

    VB多窗体退出代码

    []VB:如何检测到U盘的插拔(源代码)

    巧用SendMessage函数扩展Treeview功能

    vb中如何在任务管理器里面隐藏应用程序进程

    如何实现VBEXCEL的无缝连接

    一个API方式存取日志文件的模块[VB]

    VB用记录集填充表格函数

    VB打开文本文件各种方法

    vb ClipBoard 剪切板应用(复制剪切粘贴)

    【引用】窗口处理技巧大全 vb(窗体控件)

    【转】 Md rd命令之VB

    vb:读写文本文件

    vb中实现真正锁定的带自定义菜单的文本控件

    【引用】使用CommonDialogShowSave后如何判断是保存还是取消?

    vb 关于commondialog的多选VB获取Windows操作系统所有版本

    vb UTF文本文件访问

    VB编程中的Unicode vs Ansi

    VBPiView4注册机

    VB获取超过2G文件的大小

    CopyMemory还要快的函数SuperCopyMemory

    VB:编程效率快步提高之:十七种可用一行代码完成的技巧

    VB画出来的五星红旗

    Qt第一印象——QteQt  


    更多精彩>>>
    展开全文
  • VB的鼠标右键弹出菜单

    热门讨论 2008-07-18 11:06:28
    Windows的程序大都有弹出式菜单。比如用户在桌面上单击右键,就会调出快捷菜单。在程序中使用弹出式菜单,可以让程序更加人性化,操作更加简便。但VB自带的菜单编辑器只能设置窗体顶端的普通菜单。 那么我们如何...
  • VB之精彩编程-《 VB实现窗口的弹出式菜单
  • Visual Basic6.0实现的多级的三级窗体菜单,一共实现了两种样式的多级菜单,一种是没有分隔条,另一种在菜单各项中以分隔条区分,相信这两款三级菜单都是很不错的效果了,可以满足你的大部分应用了。菜单具体效果请...
  • VB 之 精 彩 编 程-VB实现窗口的弹出式菜单
  • 关于VB6弹出菜单的问题

    千次阅读 2015-11-01 05:06:33
    写一个小程序, 用VB6随意做下界面,离奇的发现弹出菜单居然没有效果,过程如下 创建一个窗体Form1,用菜单编辑器创建一个弹出菜单 弹出菜单子菜单项在这里名称为mPopup1,事件代码为: Option Explicit Private ...

    写一个小程序, 用VB6随意做下界面,离奇的发现弹出菜单居然没有效果,过程如下

    创建一个窗体Form1,用菜单编辑器创建一个弹出菜单

    弹出菜单子菜单项在这里名称为mPopup1,事件代码为:

    Option Explicit
    
    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        PopupMenu mnuPopup1
    End Sub
    
    Private Sub mPopup1_Click()
        Dim f As New Form2
        f.Show vbModal
    End Sub
    

    创建对应的Form2,同样有弹出菜单mnuPopup2和子菜单项mPopup2,事件代码为:

    Option Explicit
    
    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        PopupMenu mnuPopup2
    End Sub

    这时候会发现,无论在哪个事件调用PopupMenu都无法弹出mnuPopup2菜单,我怀疑过RichEdit,怀疑过ComDlg,N多怀疑

    查了下MSDN说明有一句:

    在显示弹出式菜单时,调用 PopupMenu 方法后面的代码直到用户或者从菜单中选择了命令(这时,该命令的 Click 事件的代码比 PopupMenu 语句后面的代码先执行)或者取消该菜单时才能执行。此外,每次只能显示一个弹出式菜单,因此,如果已经显示了一个弹出式菜单或打开了一个下拉式菜单时,该方法的其它调用将被忽略。

    实践证明,PopupMenu后面的代码是继续执行的,但是多次弹出菜单无效,即弹出一个菜单后的对话框不能再继续弹出对话框

    解决的办法也出来了: 不要以模态显示对话框即可.

    调整后Form1的代码为:

    Option Explicit
    
    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        PopupMenu mnuPopup1
    End Sub
    
    Private Sub mPopup1_Click()
        Dim f As New Form2
        'f.Show vbModal
        f.Show
    End Sub
    

    这样mPopup1_Click()响应过程能够返回, 再调用PopupMenu也就能弹出菜单了,当然了还有其他的解决办法,比如:

    Option Explicit
    
    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        PopupMenu mnuPopup1
    End Sub
    
    Private Sub mPopup1_Click()
        'Dim f As New Form2
        ''f.Show vbModal
        'f.Show
        Timer1.Enabled = True
    End Sub
    
    Private Sub Timer1_Timer()
        Dim f As New Form2
        f.Show vbModal
    End Sub
    

    不过这样做要注意不要Show多个模态窗体,道理也是类似的.

    应该就这么多了

    展开全文
  • PopupMenu代表弹出式菜单,它会在指定组件上弹出PopupMenu,默认情况下,PopupMenu会显示在该组件的下方或上方。PopupMenu可增加多个菜单项,并可为菜单项增加子菜单。 使用PopupMenu创建菜单的步骤非常简单,只要...

     PopupMenu代表弹出式菜单,它会在指定组件上弹出PopupMenu,默认情况下,PopupMenu会显示在该组件的下方或上方。PopupMenu可增加多个菜单项,并可为菜单项增加子菜单。

       使用PopupMenu创建菜单的步骤非常简单,只要如下步骤即可。

    1. 调用new PopupMenu(Context context,View anchor)创建下拉菜单,anchor代表要激发该弹出菜单的组件。
    2. 调用MenuInflater的inflate()方法将菜单资源填充到PopupMenu中。
    3. 调用PopupMenu的show()方法显示弹出式菜单。

        下面的实例示范了使用PopupMenu的功能和用法。

         界面布局文件如下:

    复制代码
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:onClick="onPopupButtonClick"
            android:text="单击我" />
    </LinearLayout>
    复制代码

    该实例的Activity的代入如下:

    复制代码
    package org.crazyit.helloworld;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.PopupMenu;
    import android.widget.Toast;
    
    public class PopupMenuTest extends Activity {
         
        PopupMenu popup=null;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.popup_menu_test);
        }
    
        public void onPopupButtonClick(View button)
        {
            //创建PopupMenu对象
            popup=new PopupMenu(this,button);
            //将R.menu.popup_menu菜单资源加载到popup菜单中
            getMenuInflater().inflate(R.menu.popup_menu,popup.getMenu());
            //为popup菜单的菜单项单击事件绑定事件监听器
            popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
    
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    switch(item.getItemId())
                    {
                    case R.id.exit:
                        //隐藏该对话框
                        popup.dismiss();
                        break;
                    default:
                        //使用Toast显示用户单击的菜单项
                        Toast.makeText(PopupMenuTest.this, "您单击了【"+item.getTitle()+"】菜单项",Toast.LENGTH_SHORT).show();
                    
                    }
                    // TODO Auto-generated method stub
                    return false;
                }
                
            });
            popup.show();
        }
        
        
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.popup_menu_test, menu);
            return true;
        }
    
    }
    复制代码

    上面的程序中第一行粗体字代码创建了一个PopupMenu对象,第二行粗体字代码指定将该R.menu.popup_menu菜单资源文件填充到PopupMenu中,这样即可实现当用户单击界面按钮时弹出Popup菜单。

      运行上面程序将看到如下效果:

     

    【转】http://www.cnblogs.com/wolipengbo/p/3398603.html

    转载于:https://www.cnblogs.com/lucky-star-star/p/3857355.html

    展开全文
  • 下拉及多级弹出式菜单www.aa25.cn <!-- startList = function() { if (document.all&&document.getElementById) { navRoot = document.getElementById("nav"); for (i=0; i; i++) { n
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>下拉及多级弹出式菜单www.aa25.cn</title>
    <script type="text/javascript"><!--//--><![CDATA[//><!--
    startList = function() {
     if (document.all&&document.getElementById) {
      navRoot = document.getElementById("nav");
      for (i=0; i<navRoot.childNodes.length; i++) {
       node = navRoot.childNodes[i];
       if (node.nodeName=="LI") {
        node.οnmοuseοver=function() {
         this.className+=" over";
        }
        node.οnmοuseοut=function() {
         this.className=this.className.replace(" over", "");
        }
       }
      }
     }
    }
    window.οnlοad=startList;
    
    //--><!]]></script>
    <style>
    ul { padding:0; margin:0; list-style:none;}
    li { float:left; width:100px;}
    ul li a { display:block; font-size:12px; border:1px solid #ccc; margin-top:2px; margin-left:3px; padding:3px; text-decoration:none; color:#777;}
    ul li a:hover { background-color:#ddd;}
    li ul { display:none;}
    li:hover ul,li.over ul { display:block;}
    </style>
    </head>
    
    <body>
    <ul id="nav">
     <li><a href="">文章</a>
      <ul>
       <li><a href="">CSS教程</a></li>
       <li><a href="">DOM教程</a></li>
       <li><a href="">XML教程</a></li>
       <li><a href="">FLASH教程</a></li>
      </ul>
     </li>
     <li><a href="">参考</a>
      <ul>
       <li><a href="">XHTML</a></li>
       <li><a href="">XML</a></li>
       <li><a href="">CSS</a></li>
      </ul>
     </li>
     <li><a href="">BLOG</a>
      <ul>
       <li><a href="">全部</a></li>
       <li><a href="">网页技术</a></li>
       <li><a href="">UI技术</a></li>
       <li><a href="">FLASH技术</a></li>
      </ul>
     </li>
    </ul>
    <ul>
     <li><a href="">摇滚</a></li>
     <li><a href="">纯音乐</a></li>
     <li><a href="">古典金曲</a></li>
     <li><a href="">电影原声</a></li>
    </ul>
    </body>
    </html>
    

    里边加上了和段js代码,它是用来控制在IE浏览器下显示下拉菜单的,本来li:hover ul这句是可以的,但IE对css的支持还还完善,所以需要借助JS来控制。
    展开全文
  • Java右键弹出菜单源码 简单 Java圆形按钮实例代码,含注释 两个目标文件,自绘button。 Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟 用JAVA编写的指针圆形电子钟,效果图如下所示,...
  • VB 为无标题栏窗体添加菜单,为无标题栏窗体添加菜单,添加了一种弹出式菜单,窗口美化的挺漂亮,如示例截图所示,源码运行于VB6.0环境。相关代码:  Select Case Index  Case 0 '添加菜单  PopupMenu Frm_menu....
  • VB6.0实现Office窗口风格的工具栏及多级菜单,一级一级的弹出式菜单,可支持五级或六级的子菜单展开功能,可满足大部分的软件设计需求。虽然是仿写的,不过功能很强大啊,用在你的软件中也是很不错的选择。
  • 弹出式菜单的实现

    千次阅读 2007-08-20 18:48:00
    弹出式菜单的实现 VB中在菜单设计窗口中设计的菜单是下拉式菜单。下拉式菜单是用户在任何时候都可以在顶端菜单条上选择后拉出的菜单,而弹出式菜单则是在程序界面的一定区域内点按鼠标键后出现的菜单。在某些情况下,...
  • 类的名称为cPopupMenuOption ExplicitPrivate Type POINT x As Long y As LongEnd TypePrivate Const MF_ENABLED = &H0&Private Const MF_SEPARATOR = &H800&Private Const MF_STRING = &H0&...
  • VB讲课笔记10:菜单与对话框

    千次阅读 2018-03-14 06:46:11
    VB讲课笔记10:菜单与对话框一、用户界面设计基础用户界面是应用程序最基本的组成部分,其内容包括界面基本元素的外观设计和实现相应功能的代码编制。 1、用户界面元素(User Interface Element) 窗体是用户界面...
  • 菜单程序设计 为什么要学菜单?菜单重要吗? windows环境下,所有的应用软件都是通过菜单实现各种操作的。??你说重要不重要?? 对于复杂的操作,菜单具有明显的优势。...菜单可以分为下拉式菜单,和...
  • 利用VB的选单编辑器(Menu Editor)编辑你希望弹出的选单及子选单(PoPMenu),注意,要将选单的Visible属性设置为:False。 2. 在窗体(Form1)的MouseDown事件中编写程序,来激发编辑好的选单,假设选单名为PopMenu...
  • 下载后打开,如果你的excel是2007版则会在加载项里出现Custmization 下拉框,如果是2003版,则直接在菜单栏里多出一个Customization下拉框,下拉框里包含三个按钮,其中一个有弹出注册窗体的功能。要实现更强大的...
  • ----------以下代码在模块 程序代码:   Option Explicit Public Declare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hWnd As Long, ...
  • 中实现弹出式菜单的几种方法 ※ 在 vb 中实现真正锁定的带自定义菜单的文本控件 ※ 记录一下 : 在菜单上添加自绘图形的例子 (VB6 代码 ) 相关 文 章 参考 : ★ VB 查找替代字符串的函数 ★...
  • Module_menu 文件是添加菜单有关的东西,原先最开始会自动关了程序后来又找了个源码,原来是那个MF_STRING,MF_SEPARATOR得用地址表示,不出错了,可是没看到效果最后比较幸运找到了HUSTSOFT的演示代码,才看到,...
  • 播放器窗口界面中的操作菜单,实现了弹出菜单的功能,把控制菜下的各菜单项添加到弹出式菜单ContextMenuStrip1中。  播放器功能支持DVD格式的视频播放,包括了暂停、播放、停止、弹出等功能。  本播放器程序依赖于...
  • VB.Net程序设计:动态添加右键菜单和子菜单 具体分5步 1:定义一个ContextMenuStrip对象。 2:用withevents关键字声明一个ContextMenu对象Private WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    Java右键弹出菜单源码 简单 Java圆形按钮实例代码,含注释 两个目标文件,自绘button。 Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟  用JAVA编写的指针圆形电子钟,效果图如下所示...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
     交叉语言处理:由于任何遵守通用语言规范的语言源程序,都可编译为相同的中间语言代码,不同语言设计的组件,可以互相通用,可以从其它语言定义的类派生本语言的新类。由于中间语言代码由CLR负责执行,因此异常...
  • VB6(6):有关菜单

    2019-02-23 10:26:11
    使用 boldcommand 参数来指定在显示的弹出式菜单中想以粗体字体出现的菜单控件的名称。在弹出式菜单中只能有一个菜单控件被加粗。 五、菜单的属性 (1)所有的菜单控件都具有 Enabled 属性,当这个属性设为 ...
  • VB 提示框MsgBox用法

    千次阅读 2019-09-03 15:05:58
    MsgBox是VB中的函数,可实现弹出窗口. 作用:在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。 语法: MsgBox(prompt[, buttons] [, title] [, helpfile, context]) 参数说明: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,142
精华内容 1,256
关键字:

vb弹出式菜单代码