Click here to Skip to main content
15,886,806 members
Articles / Desktop Programming / MFC

Multiple Selection in a File Dialog

Rate me:
Please Sign up or sign in to vote.
4.94/5 (49 votes)
23 Nov 2002CPOL4 min read 278.5K   5.1K   61  
Shows how to do multiple file selection in a file dialog without having to worry about the size of the buffers
#if !defined(AFX_FECFILEDIALOG_H__F15965B0_B05A_11D4_B625_A1459D96AB20__INCLUDED_)
#define AFX_FECFILEDIALOG_H__F15965B0_B05A_11D4_B625_A1459D96AB20__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CFECFileDialog : public CFileDialog
{
    DECLARE_DYNAMIC(CFECFileDialog)

public:
    CFECFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
        LPCTSTR lpszDefExt = NULL,
        LPCTSTR lpszFileName = NULL,
        DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
        LPCTSTR lpszFilter = NULL,
        CWnd* pParentWnd = NULL);

    virtual ~CFECFileDialog();// { if (Files) { delete[] Files; delete[] Folder; } }

    virtual int DoModal();
	CString GetNextPathName(POSITION &pos) const;
	POSITION GetStartPosition();

protected:
	BOOL bParsed;
	TCHAR *Folder;
	TCHAR *Files;
	virtual void OnFileNameChange();
    DECLARE_MESSAGE_MAP()
};

#endif

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
President
Canada Canada
Father of two, brother of two, child of two.
Spouse to one, uncle to many, friend to lots.
Farmer, carpenter, mechanic, electrician, but definitely not a plumber.
Likes walks with the wife, board games, card games, travel, and camping in the summer.
High school graduate, college drop-out.
Hobby programmer who knows C++ with MFC and the STL.
Has dabbled with BASIC, Pascal, Fortran, COBOL, C#, SQL, ASM, and HTML.
Realized long ago that programming is fun when there is nobody pressuring you with schedules and timelines.

Comments and Discussions