首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

c++builder中,建立菜单列表的步骤

2013-01-07 
c++builder中,建立菜单列表的方法想要通过c++builder建立类似下图的菜单列表,不知道用什么组件能够实现,请

c++builder中,建立菜单列表的方法
想要通过c++builder建立类似下图的菜单列表,不知道用什么组件能够实现,请各位帮忙指点。
曾经尝试过treeview,但是不知道怎么表示已双击选择的数据项(treenode里面没有找到对应的int类型数据)c++builder中,建立菜单列表的步骤
[解决办法]
TTreeNode里面有个Data属性,可用来存放用户数据
类型是void*,可以当作int用,也可以赋值成指针指向更复杂的数据结构
[解决办法]
选择的数据是什么类型
定义个
TStringList *ls;
双击,就给ls里添加 ls->add("选择的数据");

最后ls存放的就是选择的数据
[解决办法]
可以直接把对象存在Data里,在treeview的onchange里根据选择的节点的Data属性转换回原来的类型来调用你要用的函数
[解决办法]
本帖最后由 ccrun 于 2012-11-23 18:24:07 编辑 就用树列表控件TreeView,其中的每一个节点是一个TTreeNode对象,这个对象的属性Data可以用来存放一个指针,或者只存放一个简单的整形数据。

TreeView对象的Selected属性代表当前选中的节点,在OnDblClick和OnClick事件中都可以获取,但是需要判断Selected是否为空,然后再访问其Data属性。

TreeNode对象的Index属性代表当前节点在兄弟节点中的索引,Level属性代表第几级,AbsoluteIndex属性代表在所有节点中的索引。
[解决办法]

引用:
能说的详细点么?我想根据选择菜单的不同项调去对应的函数,Data属性能实现么?

一般来说,根据菜单项不同的属性给Data赋不同的值就行,点击的时候,根据Data中的值去调用不同的函数,比如:

switch ( int(Node->Data) ) {
    case ID_FUNC1 :
        func1();
        break;
    case ID_FUNC2 :
        func2();
        break;
    ......
}

如果不同菜单项所对应的函数的原型都一致,甚至可以直接给Data项赋值成函数指针,点击时直接调用就行了


热点排行