我想给一个LIST BOX 做一个分级菜单,就是当我选中一行数据时可以像菜单一样在右边出现一个下级菜单,里边列出和它有关的内容。不知道这个想法可以实现吗?怎么实现?如果不能实现,那有什么类似的方法吗?

解决方案 »

  1.   

    大概只能用两个listbox来实现了。
      

  2.   

    very simple:
    在资源中添加一个菜单但是不要在上面添加任何东西,假设其ID号为LISTMENU。然后在rc文件中加入你需要的菜单项,注意菜单项的ID请自己在Resource.h中定义,
    LISTMENU MENU DISCARDABLE 
    BEGIN
        POPUP ""
        BEGIN
            MENUITEM "ITEM1", ID_ITEM1
            MENUITEM "ITEM2", ID_ITEM2
        END
    END然后在你响应选择动作的函数中加入如下代码:
    假设point为菜单的弹出点(比如该点可以是listbox某选项的右下角的坐标),plist为listbox的指针
    CMenu menu;
    menu.LoadMenu(LISTMENU);
    CMenu *pContextMenu=menu.GetSubMenu(0);
    pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,point.x,point.y,plist);