搬家第14天-140.Wincc V7.3 c脚本初始化TreeView,添入常数数据
以前做过使用vbs初始化treeview,填入常数形成树形结构如下图:
在画面上放置一个treeview控件,一个按钮,按钮的鼠标点击事件中添加以下c脚本
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma code("kernel32.dll")
#define GetObject GetObject
int i;
__object *pdl=NULL;
__object *pic=NULL;
__object *tv=NULL;
__object *NodeIndex;
pdl = __object_create("PDLRuntime");
pic=pdl->GetPicture("");
tv=pic->GetObject("TV");
tv->Style=6;//'6.直线、+/-和文本;
tv->LineStyle =1;
//第一级节点
NodeIndex=tv->Nodes->Add();
NodeIndex->key="Class0";
NodeIndex->Text="城市";
//第二级节点1
NodeIndex=tv->Nodes->Add("Class0",4);
NodeIndex->key="Class1";
NodeIndex->Text="四川省";
//第二级节点2
NodeIndex=tv->Nodes->Add("Class0",4);
NodeIndex->key="Class2";
NodeIndex->Text="山西省";
//四川省下第三级节点1
NodeIndex=tv->Nodes->Add("Class1",4);
NodeIndex->key="Class11";
NodeIndex->Text="自贡市";
//四川省下第三级节点2
NodeIndex=tv->Nodes->Add("Class1",4);
NodeIndex->key="Class12";
NodeIndex->Text="成都市";
//四川省下第三级节点3
NodeIndex=tv->Nodes->Add("Class1",4);
NodeIndex->key="Class13";
NodeIndex->Text="宜宾市";
//成都市下第四级节点1
NodeIndex=tv->Nodes->Add("Class12",4);
NodeIndex->key="Class121";
NodeIndex->Text="成华区";
//成都市下第四级节点2
NodeIndex=tv->Nodes->Add("Class12",4);
NodeIndex->key="Class122";
NodeIndex->Text="双流区";
__object_delete(tv);
__object_delete(pic);
__object_delete(pdl);
}
保存运行就可以看到效果了。
nodex的add方法第一个参数表示和其他什么节点有关系,第二个参数表示有什么关系,4表示是子节点nodes的key属性用于标识这个节点,便于描述和其他节点的关系。这个练习做出来默认树形结构是不展开的,后面的练习会记录如何让结构默认展开。