MFC打开多个文件相关问题

CFileDialog dlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT,NULL,NULL);
DWORD MAXFILE=50;
TCHAR* pc=new TCHAR[MAXFILE*(MAX_PATH+1)+1];

pc[0]=pc[1]=0;
dlg.m_ofn.nMaxFile=MAXFILE;
dlg.m_ofn.lpstrFile=pc;

if(dlg.DoModal()==IDOK)
{
    POSITION pos =dlg.GetStartPosition();
    while(pos != NULL)
    {
        CString szFileName;
        szFileName=dlg.GetNextPathName(pos);
        pixelFilePathName.push_back(szFileName);
        dcmNum++;
    }
    MessageBox(pixelFilePathName[0]);
}else if(dlg.DoModal()==IDCANCEL)
{
    exit(0);
}
我想读取多个文件,但是发现只能读取选中的第一个文件,经过调试,发现是执行了szFileName=dlg.GetNextPathName(pos);后pos的值变为0x00000000了,这是为什么?

CString szFilters="DOC Files (*.doc)|*.doc|All Files (*.*)|*.*||";

CFileDialog fileDlg1 (TRUE, "doc", "*.doc",OFN_FILEMUSTEXIST|OFN_ALLOWMULTISELECT, szFilters, NULL);

if( fileDlg1.DoModal ()==IDOK )

{

    POSITION pos;  
    pos=fileDlg1.GetStartPosition();//开始遍历用户选择文件列表  
    while (pos!=NULL)  
    {  
        CString filename=fileDlg1.GetNextPathName(pos);  

    }  

#define DLG_FILTER "txt Files (*.txt)|*.txt||"
#define DLG_EXT "txt"

CFileDialog dlg(TRUE, _T(DLG_EXT), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, _T(DLG_FILTER));

if (dlg.DoModal() == IDOK)
{
POSITION pos = dlg.GetStartPosition();

while (pos != 0)
{
CString s = dlg.GetNextPathName(pos);
}
}

测试是可以的 ,你是不是没有加 OFN_ALLOWMULTISELECT这个选项呢