窗口描述的两个不可或缺的元素:
整数_Handle——窗口的句柄,可以用GetWindow来获得。该参数为0或nil代表‘桌面’的窗口句柄。(在游戏中,桌面窗口代表最原始的窗口,桌面窗口没有父窗口,只有子窗口)
字符串_Info——用逗号隔开的窗口ID的字符串(每个窗口都有一个在其父窗口范围内唯一的窗口ID,字符串类型),当前窗口从_Handle开始,遍历_Info中的字符串ID,以这个字符串ID作为子窗口查找,将找到的窗口再作为当前窗口继续遍历_Info中的字符串,直到查找完为止。该参数为""或nil代表不查找子窗口,描述的窗口由_Handle指定。若_Info中包含窗口ID:"parent",代表当前窗口的父窗口。
示例:
nil,"Package" 包裹,包裹是桌面的子窗口。
nil,"RoleSkill" 技能面板,技能面板是桌面的子窗口。
nil,"GameMainInterface,TaskWindow" 任务追踪面板,interface是桌面子窗口,任务追踪面板是interface子窗口。
以下是lua代码:
local _Package = GetWindow(nil, "Package") --获得包裹的句柄,如果包裹窗口未打开_Package为0
if 0 ~= _Handle then
local _RoleSkill= GetWindow(_Package, "parent,RoleSkill") --根据包裹窗口获得技能面板窗口
end
以下两种效果等价:
local _TaskWindow = GetWindow(nil, "GameMainInterface,TaskWindow")
local _Interface = GetWindow(nil, "GameMainInterface")
local _TaskWindow = GetWindow(_Interface, "TaskWindow")