搬家第14天-141.Wincc V7.3 使用c脚本在treeview填入常数数据,并展开所有节点
前面一篇博客记录了怎么初始化treeview控件,但是节点都是收缩的,如果希望初始化时节点都是展开的,那么需要在后面添加红色部分的脚本。
在画面上放置一个treeview控件,名字修改为TV,画面打开事件加入以下c脚本:
#include "apdefap.h"
void OnOpenPicture(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="双流区";
// 展开所有的节点
for (i=1;i<=tv->nodes->count;i++)
if (tv->nodes->item(i)->Children>0) tv->nodes->item(i)->Expanded=TRUE;
__object_delete(tv);
__object_delete(pic);
__object_delete(pdl);
}