BOOL OpenFileDialog(const TCHAR* szTitle, HWND hWnd, TCHAR *szFullName, int fullNameLength,TCHAR* szFileName,int fileNameLength,TCHAR* szFilter)
{
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hWnd;
ofn.lpstrTitle = szTitle;//对话框标题
ofn.lpstrFile = szFullName;//包含了全路径的文件名缓冲区
ofn.nMaxFile = sizeof(TCHAR)*fullNameLength;
// Set lpstrFile[0] to '\0' so that GetOpenFileName does not
// use the contents of szFile to initialize itself.
if ((szFullName != NULL) && (fullNameLength > 0))
ofn.lpstrFile[0] = _T('\0');
ofn.lpstrFileTitle = szFileName;//不包含全路径的文件名缓冲区
ofn.nMaxFileTitle = sizeof(TCHAR)*fileNameLength;
if ((szFileName != NULL) && (fileNameLength > 0))
ofn.lpstrFileTitle[0] = _T('\0');
ofn.lpstrFilter = szFilter;//例如:_T("音乐文件(*.mp3)\0*.mp3\0所有文件(*.*)\0*.*\0\0");
//ofn.nFilterIndex = 1;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
return GetOpenFileName(&ofn);
}
BOOL SaveFileDialog(const TCHAR* szTitle, HWND hWnd, TCHAR *szFullName, int fullNameLength, TCHAR* szFileName, int fileNameLength, TCHAR* szFilter)
{
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hWnd;
ofn.lpstrTitle = szTitle;//对话框标题
ofn.lpstrFile = szFullName;//包含了全路径的文件名缓冲区
ofn.nMaxFile = sizeof(TCHAR)*fullNameLength;
// Set lpstrFile[0] to '\0' so that GetOpenFileName does not
// use the contents of szFile to initialize itself.
if ((szFullName != NULL) && (fullNameLength > 0))
ofn.lpstrFile[0] = _T('\0');
ofn.lpstrFileTitle = szFileName;//不包含全路径的文件名缓冲区
ofn.nMaxFileTitle = sizeof(TCHAR)*fileNameLength;
if ((szFileName != NULL) && (fileNameLength > 0))
ofn.lpstrFileTitle[0] = _T('\0');
ofn.lpstrFilter = szFilter;//例如:_T("音乐文件(*.mp3)\0*.mp3\0所有文件(*.*)\0*.*\0\0");
ofn.lpstrDefExt = _T("");
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_OVERWRITEPROMPT;
return GetSaveFileName(&ofn);
}
bool OpenDirectory(HWND hwnd, TCHAR* szTitle, TCHAR* recvBuf)
{
BROWSEINFO bi = { 0 };
bi.hwndOwner = hwnd;
bi.lpszTitle = szTitle;
LPITEMIDLIST lpidlBrowse = SHBrowseForFolder(&bi);
if (lpidlBrowse)
{
if (::SHGetPathFromIDList(lpidlBrowse, recvBuf))
{
::CoTaskMemFree(lpidlBrowse);
return true;
}
else
{
::CoTaskMemFree(lpidlBrowse);
return false;// 选择了计算机
}
}
return false;
}
Windows保存文件对话框、打开文件对话框、获取文件目录对话框
猜你喜欢
转载自blog.csdn.net/csdn_gddf102384398/article/details/88592274
今日推荐
周排行