当前位置: BOLT界面引擎 > 知识库文章 > 联动窗口托管器的使用说明

联动窗口托管器的使用说明

作者:李亚星

联动窗口托管器的使用说明

 

鉴于有很需求是让一个pop子窗口跟父窗口实现某种程序的联动,比如某种tips窗口,当主窗口移动时候,也需要tips窗口跟随主窗口来移动,所以hostwnd增加了联动窗口托管器来满足类似的需求

 

// 向指定的hostwnd添加一个联动窗口

bool AddSyncWnd(OS_HOSTWND_HANDLE wnd, table type);

 

其中

l  Wnd 参数指定联动窗口的gdi对象句柄,也就是HWND句柄,注意不是hostwnd对象的句柄,该窗口可以是xlue里面的某种hostwnd,也可以是用户自己创建的窗口

l  Type 参数指定需要联动的类别,目前支持下面三种类别:

 

1)         position 位置联动,假如指定了该类别,那么主窗口和联动窗口会保持添加进去时的位置关系,当主窗口移动时候,联动窗口也会同时移动相应的距离,不过需要注意联动窗口不要在外面自己设置窗口的位置,设置会无效,如果确实需要自己来移动联动窗口的位置了,那么需要先调用RemoveSyncWnd移除,移动完毕后,再重新添加进来

 

2)         visible 可见性联动,假如指定了该类别,那么主窗口和联动窗口会保持可见性的一致,也就是主窗口在调用SetVisible改变可见性时候,联动窗口也会跟着改变。这里需要注意主窗口最小化时候,联动窗口并不会变为不可见,因为此时主窗口的仍是可见的,如果想实现这个特性,那么需要指定联动窗口的owner是主窗口

 

3)         enable 使能联动,假如指定了该类别,那么主窗口和联动窗口会保持使能的一致,也就是主窗口在调用SetEnable改变enable状态时候,联动窗口也会跟着改变

 

上面三个类别可以组合使用,比如下面的例子指定了位置和可见性两个属性的联动:

 

hostWnd:AddSyncWnd(syncWnd:GetWndHandle(), {"position" , "visible"})

 

 

// 从指定的hostwnd移除之前添加的联动窗口

bool RemoveSyncWnd(OS_HOSTWND_HANDLE wnd);

 

其中

l  Wnd 参数指定联动窗口的gdi对象句柄,也就是之前调用AddSyncWnd添加的窗口句柄

 

 

 

 

迅雷公司 版权所有 Copyright 2003-2010 Thunder Inc.All Rights Reserved. 意见反馈:xl7doc@xunlei.com