说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请求菜单帮助(只限VB)

编辑:说三道四文库 发布时间:2017-12-13 09:15
HTML文档下载 WORD文档下载 PDF文档下载
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
谁能告诉我怎样在一个没有建立菜单的窗体上通过代码建立(API可以吗?)
没试过,没有多少人“动态建立”菜单吧,一般只是设置VISIBLE和ENABLE而已,你的目的是什么?
'以下是一个弹出菜单类的源代码。
'=================================================
'以下放到一个类模块 .cls 文件中,类名为  cPopupMenu

Option Explicit
'
Private Type POINT
    x As Long
    y As Long
End Type
'
Private Const MF_ENABLED = &H0&
Private Const MF_SEPARATOR = &H800&
Private Const MF_STRING = &H0&
Private Const TPM_RIGHTBUTTON = &H2&
Private Const TPM_LEFTALIGN = &H0&
Private Const TPM_NONOTIFY = &H80&
Private Const TPM_RETURNCMD = &H100&
Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal sCaption As String) As Long
Private 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, nIgnored As Long) As Long
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINT) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
Private mSelMenuString As String
Public Property Get SelMenuString() As String
    SelMenuString = mSelMenuString
End Property
'
Public Function Popup(ParamArray param()) As Long
    Dim iMenu As Long
    Dim hMenu As Long
    Dim nMenus As Long
    Dim p As POINT

' get the current cursor pos in screen coordinates
    GetCursorPos p

' create an empty popup menu
    hMenu = CreatePopupMenu()

' determine # of strings in paramarray
    nMenus = 1 + UBound(param)

' put each string in the menu
    For iMenu = 1 To nMenus
' the AppendMenu function has been superseeded by the InsertMenuItem
' function, but it is a bit easier to use.
        If Trim$(CStr(param(iMenu - 1))) = "-" Then
' if the parameter is a single dash, a separator is drawn
            AppendMenu hMenu, MF_SEPARATOR, iMenu, ""
        Else
            AppendMenu hMenu, MF_STRING + MF_ENABLED, iMenu, CStr(param(iMenu - 1))
        End If
    Next iMenu

' show the menu at the current cursor location;
' the flags make the menu aligned to the right (!); enable the right button to select
' an item; prohibit the menu from sending messages and make it return the index of
' the selected item.
' the TrackPopupMenu function returns when the user selected a menu item or cancelled
' the window handle used here may be any window handle from your application
' the return value is the (1-based) index of the menu item or 0 in case of cancelling
    iMenu = TrackPopupMenu(hMenu, TPM_RIGHTBUTTON + TPM_LEFTALIGN + TPM_NONOTIFY + TPM_RETURNCMD, p.x, p.y, 0, GetForegroundWindow(), 0)
    Dim result As Long
    Dim buffer As String
    Const MF_BYPOSITION = &H400&

    buffer = Space(255)
    
    result = GetMenuString(hMenu, (iMenu - 1), buffer, _
                   Len(buffer), MF_BYPOSITION)
    'Debug.Print buffer
    mSelMenuString = Trim(buffer)
' release and destroy the menu (for sanity)
    DestroyMenu hMenu

' return the selected menu item's index
    Popup = iMenu

End Function

'结束


'============================================================
'以下放到一个窗体文件中
Option Explicit


'以下是实例,在Form上添加一个ListBox控件



Private Sub Form_Load()
    List1.AddItem "Right-Click here for a menu"
End Sub

Private Sub List1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim oMenu As cPopupMenu
    Dim lMenuChosen As Long
'
    If Button = vbRightButton Then
        Set oMenu = New cPopupMenu
'
' Pass in the desired menu, use '-' for a separator
'
        lMenuChosen = oMenu.Popup("Menu 1", "Menu 2", "Menu 3", _
                "-", "Menu 4")
'
        Debug.Print lMenuChosen
        Me.Caption = oMenu.SelMenuString
        
    End If

'
End Sub

AMD打造开放的异构计算标准? Podcasts:苹果史上最烂iOS应用 烂过iOS Maps 日本游戏开发公司谈:如何在激烈的APP世界立足 VC不会告诉你的8件事 Reddit宣布将接受虚拟货币Bitcoin付款 OneID创始人:双因素身份验证无法保护Twitter Opera放弃自家内核转投WebKit的背后 Amazon强攻私有云市场,目标锁定银行 微软的24年数据中心之路 Flurry:约会应用男同性恋用的最多 jQuery消息提示框的简单实现 Mozilla CTO:Mozilla不会转向WebKit 这很重要 Pinterest或超Twitter成第二大社交网站 适合儿童上手的八款编程工具 一周云事件:亚马逊对消费者的吸引力超过苹果 比尔·盖茨对微软创新和手机不满意 让我们一起来做最漂亮的Android界面吧! 响应高达6秒 用户揭露Heroku修改路由“50倍圈钱”? [探讨]响应式设计四大原则 Linux Kernel 3.8发布 停止支持386设备 HTML5手机游戏引擎Devkit开源 程序员的一天:台湾个人移动游戏开发者 极限破解:利用低温环境读取Android加密数据 五种工具保护你的在线隐私 从打压到支持 微软与GitHub的爱恨情仇 “夫妻档”初创公司百万美元打造实时Hadoop系统 编程从娃娃抓起:13岁儿童的移动游戏之梦 新浪管理层调整 许良杰任CTO兼联席总裁 Java,你还会让多少人继续“受伤”? 中国或超美国 成全球智能设备市场霸主 告别手写 API文档生成工具推荐 这个论坛怎么了 ? 谁有02年的高程试题,发一份给我,谢谢! 有谁在Windows下,最好是VC6里用过GTK+,具体怎么安装GTK+呢,请指点一下,谢谢! 有谁在Windows下,最好是VC6里用过GTK+,具体怎么安装GTK+呢,请指点一下,谢谢! ***关于网卡!!!在线等*** 请问!!! 谁有钱能编的c++的习题答案! 请用过Indy的朋友帮我看一下以下问题如何解决? 如何解决List中的多字段排序 关于ADODB.Connection类型对象的问题 ★★★★XP风格控件界面库★★动态库调用错误★★★★ WIN2000下如何在apache执行asp啊? 请问谁有给别人发email的java代码? 急用!谢谢! 请教COMBOBOX的用法 ---------这个语句应该怎样写?请高手指教!--------- ★★★★XP风格控件界面库★★动态库调用错误★★★★ 为什么老是出错啊 大家觉得LOTUS有前途吗? 为什么视图中明明有文档而在预览的时候就说没有文档呢?在notes下预览也没有。 清华版数据结构题集实习题目,在线等待!编译后马上发分!! 这个触发器怎么写? 请问搞底层开发和应用开发哪个更有前途? 请问搞底层开发和应用开发哪个更有前途? ★★★★XP风格控件界面库★★动态库调用错误★★★★ 在线答:有没有人用过TWebBrowser???? 有关异常的问题,请大家帮忙 高分求一个能调用vc写的dll的java类?(现在分用完了,百分之百给分500) 请问搞底层开发和应用开发哪个更有前途? 如何向VC的自动完成功能中加入DXSDK中的函数? 用vb做小型数据库应用程序,access做这类程序哪个更好一些?请说出理由. 关于在JBuilder9中开发嵌入式程序的问题 我想要一些用JB开发的源代码,有吗? 开发cmpp2过的高手们,关于connect命令,出错的问题, 我校一牛人**英语4**级作文!!!! 小弟刚开始接触汇编,望大家指教~ 采用CSocket进行收发出现的一个非常奇怪的问题,十万火急,急,急,急!!!! 请教DataGrid中HyperLinkColumn的用法 求助!请数据库高手回复!关于新建和复制表结构的问题!(续!) 用java写的将xml文件读入到Oracle9i中时出现如下错误。请高人指教(包括源程序) 一个简单的问题,如何显示进度? 为什么会出现这个错误啊????在线等,急。。。解决就给分。。。 两个没有人能解决的问题!靠!害得我吃不下饭! 动态的水晶报表,高高手来解一下,(快要绝种了```) 如何学好数学? 请问VS2003能安装在Windows server2003 下吗?(30分) cpu使用不断增多 为什么 如果调用Tprinter打印数据,那么怎么实现线数据预览? 两个类相互引用问题? 小问题,只要你不UP绝对有分! 为什么bind2nd(mem_fun_ref(&CLASS::Func),Para);CLASS::Func的参数不能是pass-by-(const)reference 在win-tc下编译成功的水仙花树怎么这样呢?? 无礼的意思我急用! 则是无礼的意思 如题,尤其要解释:“好”字 电子浆料有无化学名电子浆料,银浆有无化学名及CAS号是多少 因式分解【急死了,1.x²-4xy+4y²-10x+20y+252.(n+1)(n+2)(n+3)(n+4)+1填空题当x=_______时,代数式x²-4x+10有最小值,最小值是_______好的再加50分! 请问负极浆料沉淀,团聚怎么解决? 太阳能电子浆料它的用途是什么?制造它需要哪些原材料? 关于广场舞的作文 600字 要有点面结合和正侧面描写 语言要优美点 对不起啊,新号,求一个作文. 仿写句子,急死了!网络是一个信息的宝库,储存了大量的学术信息、经济信息和娱乐信息等.网络是一个信息的垃圾场,堆积了许多的黄色信息、暴力信息、虚假信息等.(要选新的本体,句式要相 汗死人的一道仿写句子题仿照下面一句话的句式,分别以“公园”或“客厅”开头,仿写两句话.例句:舞台小社会,社会大舞台,演尽人间悲欢离合.1.公园﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎ 2. 为了读书,李坤寄居在一个环境幽静的寺庙里.用为了 仿写一句话例如为了XX,XXXX在XXXXXXXXXX. 北京天坛公园频发虐猫事件 已致数十只俄罗斯免费医疗陷入两难境地 有效果难纽约油价25日继续走高突尼斯召开全国对话大会第一次全体会议蒙古国总统或成金正恩时期首位访朝元首综述:欧盟关注“窃听风云” 欧美信任美元对欧元汇率25日继续下跌纽约股市标普指数25日再创新高独联体在明斯克举行峰会日本福岛外海强震上修为7.1级 东京俄罗斯加大乌克兰施压力度欲让其放弃北秋季茶博会今日开幕常住人口去年日增45恶瘤病例佛山全省率先推行职业安全健康分类分级《百团大战》今日热血开战商务之旅4项职业技能鉴定考试 将启用智能化考掘金养老服务概念股周丽淇拒回应是否已与徐正曦分手珠江西岸装备展 或明年顺德主办200万平方米旧厂房将打造成产业园德政府就排外言论约谈“脸谱”有关负责剑道邪尊Ⅱ大唐嗨皮牛爷辰国秘史混乱大唐文明创世我的三国我当家回天剑狂韩娱之首尔花店符道至圣贤者与少女文青是不是种病上海观光游巴士THEBIGBUS旅游笔山洞旅游种德宫旅游世泽楼旅游侨福楼旅游中国国家话剧院旅游犀牛潭峡谷旅游郑州植物园旅游溪水国家森林公园旅游桑冉库特旅游世界和平塔旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘