void FormatItems(items_t::iterator_t ite, LONG space, LONG offst, CPoint& pt, LONG& w) { IGuiCtl* itm = *ite; if(!itm->IsVisible()) return; CRect rc; itm->GetRect(rc); rc.MoveTo(pt); itm->SetRect(rc); if (w < rc.Right()) w = rc.Right(); pt.x += offst; pt.y = rc.Bottom() + space; // 遍历列表项 items_t::ite_list_t ite_lst = ite->Children(); items_t::ite_list_t::iterator_t ite_ite = ite_lst.Head(); for(; ite_ite != ite_lst.Tail(); ++ite_ite) FormatItems(*ite_ite, space, offst, pt, w); pt.x -= offst; }