动态菜单问题
'动态创建菜单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
在子菜单那我不明白如何让子菜单对应到相应的主菜单?? --------------------编程问答--------------------
你是说位置还是事件?
单击主菜单 相应的事件里写就行了 想弹哪个就哪个
位置的话要自己调整 --------------------编程问答-------------------- 是位置我不知道怎么弄
比如
主菜单 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 , 控件