首页 > 代码库 > GetStartPosition和GetNextAssoc的作用

GetStartPosition和GetNextAssoc的作用

这几个函数是用于集合遍历的,类似于STL的迭代(iteration),POSITION就是MFC的迭代器(iterator),GetStartPosition是取第一个迭代器,GetNextAssoc是取出当前元素然后向后移动迭代器。
---------------------------------------------------------------------------------------------------------------
此方法是MFC中树形控件,和列表控件用来取得下一个项,可用来遍历;另外ole中取得文档对象中的下一项。
CTreeCtrl::GetNextItem
HTREEITEM GetNextItem( HTREEITEM hItem, UINT nCode );
返回值:如果成功则返回下一个项的句柄;否则返回NULL。
参数: hItem 一个tree项的句柄。
nCode 一个用来指示与hItem的关系的类型的标志。这个标志可以是下列值之一: · TVGN_CARET 获取当前被选择的项。
· TVGN_CHILD 获取第一个子项。hItem参数必须是NULL。
· TVGN_DROPHILITE 获取是一次拖放操作的目标的项。
· TVGN_FIRSTVISIBLE 获取第一个可见的项。
· TVGN_NEXT 获取下一个兄弟项。
· TVGN_NEXTVISIBLE 获取跟随在指定项之后的下一个可视项。
· TVGN_PARENT 获取指定项的父项。
· TVGN_PREVIOUS 获取前一个兄弟项。
· TVGN_PREVIOUSVISIBLE 获取在指定项之前的第一个可视项。
· TVGN_ROOT 获取根项的第一个子项,指定项是该根项的一个部分。
说明:
此成员函数用来获取与nItem具有由nCode参数指定的关系的tree view项。
请参阅:
CTreeCtrl::SetItem, CTreeCtrl::GetChildItem, CTreeCtrl::GetItem, CTreeCtrl::SelectItem, CTreeCtrl::GetPrevSiblingItem
COleDocument类成员
COleDocument::GetNextItem
virtual CDocItem* GetNextItem(POSITION& pos) const;
返回值:指向在指定位置的文档项的指针。
参数: pos 是上一次调用GetNextItem设置的POSITION值的引用;其初值是成员函数GetStartPosition的返回值。
说明:
调用这个函数可以重复访问你的文档中的每一个项。在每一次调用之后,pos的值被设置为文档中下一个项的POSITION值。如果被获取的元素是文档中的最后一个元素,则pos的新值为NULL。
示例:
// Example for COleDocument::GetNextItem
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
CDocItem *pItem;
while( pos != NULL )
{
pItem = pDoc->GetNextItem( pos );
// Use pItem
}
请参阅:
COleDocument::GetStartPosition, COleDocument::GetNextClientItem, COleDocument::GetNextServerItem
CListCtrl类成员
CListCtrl::GetNextItem
int GetNextItem(int nItem,int nFlags) const
返回值:
如果成功,则返回下一项的索引值,否则返回-1。
参数: nItem 搜索开始项的索引。如果它等于-1,则从第一项开始匹配指定的标志。不过,指定项本身不包括在搜索范围之内。
nFlags 所需项与指定项的位置关系,以及所需项的状态。这些位置关系为下列值之一: · LVNI_ABOVE 在指定项之上查找某项。
· LVNI_ALL 通过索引(为缺省值)查找随后的项。
· LVNI_BELOW 在指定项之下查找某项。
· LVNI_TOLEFT 在指定项的左面查找某项。
· LVNI_TORIGHT 在指定项的右面查找某项。状态可以为零,也可以为下列值:
· LVNI_DROPHILITED 设置了LVIS_DROPHILITED状态标志的项。
· LVNI_FOCUSED 设置了LVIS_FOCUSED状态标志的项。
· LVNI_SELECTED 设置了LVIS_SELECTED状态标志的项。如果项没有设置任何的状态标志,那么搜索将从下一项开始

GetStartPosition和GetNextAssoc的作用