在CFileDialog中有个POSITION,用来取得多选文件的。用得到的时候用呗。这个类型使用频率相当低。

解决方案 »

  1.   

    CConnectionPoint 中有个成员函数
    POSITION GetStartPosition() const;POSITION pos = m_xEventSet.GetStartPosition();
    pDispatch = (LPDISPATCH)m_xEventSet.GetNextConnection(pos);
    意味着做了什么操作?
      

  2.   

    to:kimryo
    在CFileDialog中的用法,怎么用?
      

  3.   

    A value used to denote the position of an element in a collection; used by MFC collection classes.
      

  4.   

    to:shawn_liu() 
    为什么GetStartPosition时就不是得到第一个连接
    而是GetNextConnection(pos)得到一个连接(这时是第几个连接)
      

  5.   

    差不离儿。
    CFileDialog中是 POSITION pos=dlg.GetStartPosition();
     CString fn=dlg.GetNextPathName(pos); while(fn){
     
      fn=dlg.GetNextPathName(pos);//GetNextPathName(POSITION& pos)
     }
      

  6.   

    typedef void * POSITION
    这是在Afx.h头文件中实现的,其实际使用在列表中,在Get返回的是指向一个节点的位置。节点结构为:struct CNode
    {
    CNode* pNext;
    /*指向上一节点指针*/
    CNode* pPrev;
    /*指向下一节点指针*/
    TYPE data;
    /*数据区域*/
    };
      

  7.   

    GetNextConnection(pos);//pos变为第二个。注意看:   GetNextConnection(POSITION& pos);
                                ~~~是个refrence.
      

  8.   

    POSITION 就是一个整型数据,和 unsigned long 是同等的,如果是0,就意味着POSITION==NULL; 它可以强制类型转换成LONG型的数据。它不是什么结构体,也不是类。
      

  9.   

    没错,若要获得列表中的第一个元素,必须结合使用GetStartPosition和GetNextPathName。在其它一些用到POSITION的情况下,例如,在文档模板列表中寻找第一个文档模板,也是由类似的两个函数来完成。
      

  10.   

    to:kimryo(Invincible)
    “GetNextConnection(pos);//pos变为第二个”
    那么意味着返回的是第一个元素,再用GetNextConnection(pos)时就是返回第二个并把pos变为第三个如果这样的接口自己实现的话
    一般要用什么来存放元素?从而满足上面的两个函数的请求?
      

  11.   

    如果是复杂的数据类型,可以考虑用链表;如果只是字符串,可以null separate,double null terminate.