作者:much
Email:netmuch#163.com

如需转载,请务必注明文章来源于本站(风与水的天堂)。
文章出处:
http://www.rtoslab.net
Email:netmuch#163.com

 

 

在vxworks5.5中的windml3.0版本中,已近存在一个属于windml的链表UGL_LIST,对于这个链表,已经做的比较完整了。

其结构定义:

typedef struct ugl_node
    {
    struct ugl_node * pNext;
    struct ugl_node * pPrev;
    } UGL_NODE;

typedef struct ugl_list
    {
    UGL_NODE * pFirst;
    UGL_NODE * pLast;
    int count;
    } UGL_LIST, * UGL_LIST_ID;

从其结构的定义上,可以看出来,UGL_LIST仅仅是一个前后的指针,并没有指向某一个特定数据,这也就是说,UGL_LIST具有很大通用性。

并且,已经提供了创建、销毁、添加节点、删除节点,查找前后,查找其中某个节点等等之类的函数,基本上可以直接使用,而不用另外再添加代码了!

在windml3.0中,UGL_LIST链表运用的最多的地方就是用来组织wwm中的窗口关系,然后就是用在窗口的z-order上面。

当然,如果要从这里了解UGL_LIST的使用,代码就显得比较繁琐了,则在wwm中的wwmMenu.c中,通过构建菜单控件,完整了描述了UGL_LIST的使用方法。

题外话:若对wwmMenu进行改造,基本上可以实现类似windows xp 的开始菜单!