在FILE OPEN 中选择一批文件到编辑框中,应该怎么做啊?
具体来说,就是点击"打开"按钮,然后弹出文件选择窗口,选择要打开的文件时
可以按住Shift键多选,然后将选择的文件按照顺序排好打开.
比如,20030422-3,20030422-4,...,20030423-5,...
谢谢各位了!

解决方案 »

  1.   

    参考:
    CString strFilter="Mp3 File(*.mp3)|*.mp3|";
    strFilter+="MPEG File(*.mpg;*.mpeg)|*.mpg;*.mpeg|";
    strFilter+="Wave File(*.wav)|*.wav|";
    strFilter+="AVI File(*.avi)|*.avi|";
    strFilter+="All File(*.*)|*.*|";
    CFileDialog dlgOpen(TRUE,NULL,NULL,OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT,strFilter,this);
    DWORD MAXFILE = 2412; // allocate enough memory space
    dlgOpen.m_ofn.nMaxFile = MAXFILE; // set the buffer size
    CString strFileName;
    char* buf = new char[MAXFILE];
    dlgOpen.m_ofn.lpstrFile = buf;
    dlgOpen.m_ofn.lpstrFile[0] = NULL; 
    if(IDOK==dlgOpen.DoModal())
    {
    POSITION pos = dlgOpen.GetStartPosition();
    while (pos != NULL)
    {
    strFileName = dlgOpen.GetNextPathName(pos); 
    // get the individual file name
    m_SourceFileList.InsertString(m_SourceFileList.GetCount(),strFileName);// add to Mp3 ListBox
    }
    }
    delete [] buf;
      

  2.   

    CFileDialog 的dwFlags中加上OFN_ALLOWMULTISELECT
      

  3.   

    OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT 中的 OFN_ALLOWMULTISELECT就是允许多选,而选中后的文件名要通过几个步骤来获取
    POSITION pos = dlgOpen.GetStartPosition();
    while (pos != NULL)
    {
    strFileName = dlgOpen.GetNextPathName(pos); 
    // get the individual file name
    m_SourceFileList.InsertString(m_SourceFileList.GetCount(),strFileName);// add to Mp3 ListBox
    }
    先通过GetStartPosition获取第一个POSITION,然后通过GetNextPathName获取文件名并将POSTION指向下一个文件名的位置
      

  4.   

    OFN_ALLOWMULTISELECT这个东西在哪里啊?是什么意思啊?
      

  5.   

    OFN_ALLOWMULTISELECT在CFileDialog的构造函数CFileDialog(。。)中的参数dwFlag中有解释
      

  6.   

    那是不是象下面这样就可以定义一个可复选的打开按钮呢?
    CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL,LPCTSTR lpszFileName = NULL, 
    DWORD dwFlags = OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, 
    LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL )   open(true);
      

  7.   

    要注意dlgOpen.m_ofn.nMaxFile的值,太小了打开文件的数量也就少