LPCTSTR lpcstrFilter =
_T("All Files (*.*)\0*.*\0")
_T("Text Files (*.txt)\0*.txt\0")
_T("C++ Files (*.cpp)\0*.cpp\0")
_T("Include Files (*.h)\0*.h\0")
_T("C Files (*.c)\0*.c\0")
_T("Inline Files (*.inl)\0*.inl\0")
_T("Ini Files (*.ini)\0*.ini\0")
_T("Batch Files (*.bat)\0*.bat\0")
_T("");
CFileDialog dlg(FALSE, NULL, m_strFilePath, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpcstrFilter);
int nRet = dlg.DoModal();
//CFileDialog实现
class CFileDialog : public CFileDialogImpl<CFileDialog>
CFileDialogImpl(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
HWND hWndParent = NULL)
OPENFILENAME m_ofn;
m_ofn.lpstrFilter = lpszFilter;