急!VirtualStringTree如何使用
网上找了很多关于VirtualTree的例子,都是Delphi的,没有学过,看不懂中...
希望有C++的例子,想好好学习这个控件的使用
求好人啊...
[解决办法]
TVirtualTree使用方式与 TTreeView 不一样。
TVirtualTree 的节点是纯粹的节点,TVirtualNode是不含节点数据的。 要显示节点文字,则要通过回调方式在OnGetText事件中给出 Text 值。这样用户节点数据是可以设计成独立的,TVirtualTree只是显示用户的数据。而且OnGetText事件只画出当前屏,所以节点数量与绘画速度无关,无论多少节点,绘制速度是恒定的单页速度。这是它速度极快的原因所在。
TVirtualNode 通过Data属性来挂接用户数据,可以将Data设计成一个指针,通过指针读写用户节点数据,这样用户节点数据就要自行管理。也可以将用户节点数据附加在TVirtualNode 节点尾,让TVirtualTree管理,通过回调方式执行节点初始化及析构动作。
以上特征,让TVirtualTree的使用方式很灵活,也是造成其不易用的原因。使用TVirtualTree必须要清楚节点数据的内存布局是怎么样的,需要自行管理节点数据,而不是 TTreeView 的傻瓜方式。