打开文件对话框: void OpenFile() { // TODO: Add your control notification handler code here CString FileType = "EXE files(*.exe)|*.exe||"; CFileDialog * lpszOpenFile; lpszOpenFile = new CFileDialog(TRUE, "", "", OFN_FILEMUSTEXIST|OFN_HIDEREADONLY, FileType); if (lpszOpenFile->DoModal() == IDOK) { CString szGetName; szGetName = lpszOpenFile->GetPathName(); //szGetName 就是返回的文件路径以及文件名 //N你的操作 } delete lpszOpenFile; UpdateData(FALSE); } 打开文件夹对话框: void OpenFolder() { CString m_MonitorPath; BROWSEINFO browseInfo; ::ZeroMemory(&browseInfo, sizeof(BROWSEINFO));//CString strPath = _T(""); TCHAR szBuffer[MAX_PATH] = {0}; browseInfo.hwndOwner = NULL; browseInfo.pszDisplayName = szBuffer; browseInfo.ulFlags = BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS; LPITEMIDLIST pIDList = SHBrowseForFolder(&browseInfo); if(pIDList == NULL) return; SHGetPathFromIDList(pIDList, szBuffer); LPMALLOC lpMalloc; if(FAILED(SHGetMalloc(&lpMalloc))) return; lpMalloc->Free(pIDList); lpMalloc->Release(); m_MonitorPath.Format(_T("%s"), szBuffer); //m_MonitorPath }