当前位置:编程学习 > VB >>

动态菜单问题

'动态创建菜单
    Do Until rst.EOF = True
       i = i + 1
       If rst.Fields("FParent") = 0 Then
          主菜单
          AppendMenu1 hFather, MF_POPUP, i, rst.Fields("FItemText")  'hPopMenuTmp
          hSubMenu = GetSubMenu(mHandle, 0)  '获得hMenu的第一个子菜单的句柄保存于hSubMenu
       Else
         子菜单
         MenuCount = MenuCount + 1
        
        ReDim Preserve MenuText(MenuCount)
        AppendMenu1 hSubMenu, MF_STRING, 1000 + MenuCount, rst.Fields("FItemText")
 
       End If
       rst.MoveNext
    Loop


在子菜单那我不明白如何让子菜单对应到相应的主菜单?? --------------------编程问答--------------------
引用楼主 amekenvb 的回复:
在子菜单那我不明白如何让子菜单对应到相应的主菜单??

你是说位置还是事件?
单击主菜单 相应的事件里写就行了  想弹哪个就哪个

位置的话要自己调整 --------------------编程问答-------------------- 是位置我不知道怎么弄
比如
主菜单 A    B      C       已经创建了
       A.1  B.1    c.1  这里有点搞不明白 --------------------编程问答-------------------- 我用AppendMenu1 hSubMenu, MF_STRING, 1000 + MenuCount, rst.Fields("FItemText")
的话所有的 A B C菜单下都有A.1了 --------------------编程问答-------------------- VB声明   
Declare   Function   CreateMenu   Lib   "user32 "   Alias   "CreateMenu "   ()   As   Long   
说明   
创建新菜单   
返回值   
Long,如成功则返回新的顶级菜单的句柄;零意味着错误   
注解   
最开始创建时,菜单是空的。可用菜单api函数插入菜单条目。一旦菜单不再需要,记住用DestroyMenu将其删除 
  
VB声明   
Declare   Function   DestroyMenu   Lib   "user32 "   Alias   "DestroyMenu "   (ByVal   hMenu   As   Long)   As   Long   
说明   
删除指定的菜单。如菜单属于另一个菜单的一部分,或直接分配给一个窗口,那么菜单会在窗口清除后被自动删除   
返回值   
Long,非零表示成功,零表示失败。会设置GetLastError   
参数表   
参数   类型及说明   
hMenu   Long,欲删除菜单的句柄   
注解   
这个函数通常用于CreateMenu和CreatePopupMenu函数创建的菜单 
  
VB声明   
Declare   Function   CreatePopupMenu   Lib   "user32 "   Alias   "CreatePopupMenu "   ()   As   Long   
说明   
创建一个空的弹出式菜单。可用AppendMenu或InsertMenu函数在窗口中添加条目,或者为一个现成的菜单添加弹出式菜单,并在新建的菜单中添加条目   
返回值   
Long,如成功,返回一个菜单句柄;零意味着错误   
注解   
并不推荐用这个函数来创建备用的vb菜单,除非是为TrackPopupMenu函数生成菜单。这个窗口中使用的命令ID必须与现有vb菜单控件的ID相符。或者用一个子类处理控件进行管理  --------------------编程问答-------------------- 这几个函数我都知道
现在不知道的是创建了主菜单后,子菜单怎么 往对应的主菜单创建
我现在遇到的是创建的子菜单一下子都跑到所有主菜单去了 --------------------编程问答-------------------- 在数据库中设置好菜单顺序,按顺序产生菜单就可以了。
补充:VB ,  控件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,