| WideStudio Programming Guide | WideStudio Index Table of contents

> ## 获取子对象

> 使用如下所示的方法，获取实例中包含的子对象。

> 获取子对象的成员函数 | 功能
> WSCbase* getChildInstance(char*) | 获得指定名称的对象
> WSClistData getChildren() | 获得配置的子对象
> long getAllChildren(WSClistData仌) | 获得配置的所有子对象

> ### 获取指定的子对象

> 使用成员函数getChildInstance()获得指定的子对象。

>     void event_procedure(WSCbase* object){
>       //获得指定名称的子对象
>       WSCbase* child = object->getChildInstance("newpbtn001");
>       if (child != NULL){
>         //访问指定的子对象
>         child->setVisible(True);
>       }
>     }

> 在上例中获得了object中包含的指定子对象。在获取指定名称的子对象时，对象object对其子类进行递归检索。 如果没有发现指定名称的子对象，则返回NULL。

> ### 获取子对象

> 使用成员函数getChildren()获得对象中包含的子对象。

>     void event_procedure(WSCbase* object){
>       //获取子对象列表
>       WSClistData children = object->getChildren();
>       //获得的子对象个数
>       long num = children.getNum();
>       long i;
>       for(i=0; i<num; i++){
>         //获取子对象
>         WSCbase* child = (WSCbase*)children[i];
>     //  WSCbase* child = (WSCbase*)children.getData(i); //与上面一行等效
>         //访问子对象
>         child->setVisible(False);
>       }
>     }

> 在上例中获得了object中包含的子对象。子对象指针保存在WSClistData（列表对象）返回值中。 从返回的列表对象中，通过成员函数getData(i)或者访问数组依次获取该列表中包含的对象指针， 并将其转化为WSCbase*型。

> ### 获取所有子对象

> 使用成员函数getAllChildren()获得对象中包含的所有子对象。

>     void event_procedure(WSCbase* object){
>       //声明保存子对象的列表
>       WSClistData children;
>       //获取子对象
>       object->getAllChildren(children);
>       //获得子对象个数
>       long num = children.getNum();
>       long i;
>       for(i=0; i<num; i++){
>         //获取子对象
>         WSCbase* child = (WSCbase*)children[i];
>         //访问子对象
>         child->setVisible(True);
>       }
>     }

> 获取object中包含的所有子对象。与getChildren()不同的是，递归地获得所有子对象。

> ### 获取应用程序置顶窗口中的子对象

> 在应用程序置顶窗口中，使用成员函数getAllChildren()获得存在的所有子对象。

>     void cbop(WSCbase* object){
>       //获得应用程序置顶窗口
>       WSCbase* win = object->getParentWindow();
>       //声明保存子对象的列表
>       WSClistData children;
>       //获得应用程序置顶窗口中的所有子对象
>       win->getAllChildren(children);
>       //子对象个数
>       long num = children.getNum();
>       long i;
>       for(i=0; i<num; i++){
>         //获取子对象
>         WSCbase* child = (WSCbase*)children[i];
>         //访问子对象
>         child->setVisible(False);
>       }
>     }

> 在上例中，获得了应用程序置顶窗口中所有的子对象。

Document Release 3.70 for WideStudio ver 3.70, May 2004

WideStudio documents index | Table of contents

Copyright(C) WideStudio Development Team, 1999-2004 | Last modified: May 25, 2004