使用 OPENFILENAME 以及 GetOpenFileName、GetSaveFileName 实现打开,保存对话框
2009-11-20 22:29
671 查看
(1) 建立全局变量
OPENFILENAME ofn;
(2) 初始化部分结构体
//------初始化OPENFILENAME结构成员-----Start-----
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hDlg;
ofn.hInstance = hInst;
ofn.lpstrFilter = "Text File(*.TXT)/0*.txt/0All File(*.*)/0*.*/0";
ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0;
ofn.nFilterIndex = 1;
//ofn.lpstrFile = NULL;
ofn.nMaxFile = MAX_PATH; //设置 lpstrFile 位的缓冲区大小,如果为 0,则不返回文件路径
ofn.lpstrFileTitle=NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = NULL;
ofn.Flags = 0;
ofn.nFileOffset = 0;
ofn.nFileExtension = 0;
ofn.lpstrDefExt = "txt";//NULL;
ofn.lCustData = 0;
ofn.lpfnHook = NULL;
ofn.lpTemplateName = NULL;
//------初始化OPENFILENAME结构成员-----End--------
(3)调用打开
//------------打开文件对话框----------
char sFileDef[MAX_PATH];// = "abcd.txt";
BOOL bRet = FALSE;
ofn.lpstrFile = sFileDef;
// ofn.lpstrFile[0] = '/0'; //设置为 '/0' 则录入框没默认值
ofn.Flags = OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_PATHMUSTEXIST; //OFN_FILEMUSTEXIST|
ofn.lpstrTitle = "打开";
bRet = GetOpenFileName(&ofn);
if (bRet)
{
MessageBox(0, ofn.lpstrFile, "FILE", 0);
SetDlgItemText(hDlg, ID_ED_SELTFILE, ofn.lpstrFile);
}
//------------保存文件对话框----------
char sFileDef[MAX_PATH];// = "abcd.txt";
BOOL bRet = FALSE;
ofn.lpstrFile = sFileDef;
// ofn.lpstrFile[0] = '/0'; //设置为 '/0' 则录入框没默认值
ofn.Flags = OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT;
ofn.lpstrTitle="另存为...";
bRet = GetSaveFileName(&ofn);
//------OpenSaveDialog------End--------
if (bRet)
{
MessageBox(0, ofn.lpstrFile, "FILE", 0);
SetDlgItemText(hDlg, ID_ED_SELTFILE, ofn.lpstrFile);
}
(4)返回路径保存在 ofn.lpstrFile 变量中
OPENFILENAME ofn;
(2) 初始化部分结构体
//------初始化OPENFILENAME结构成员-----Start-----
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hDlg;
ofn.hInstance = hInst;
ofn.lpstrFilter = "Text File(*.TXT)/0*.txt/0All File(*.*)/0*.*/0";
ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0;
ofn.nFilterIndex = 1;
//ofn.lpstrFile = NULL;
ofn.nMaxFile = MAX_PATH; //设置 lpstrFile 位的缓冲区大小,如果为 0,则不返回文件路径
ofn.lpstrFileTitle=NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = NULL;
ofn.Flags = 0;
ofn.nFileOffset = 0;
ofn.nFileExtension = 0;
ofn.lpstrDefExt = "txt";//NULL;
ofn.lCustData = 0;
ofn.lpfnHook = NULL;
ofn.lpTemplateName = NULL;
//------初始化OPENFILENAME结构成员-----End--------
(3)调用打开
//------------打开文件对话框----------
char sFileDef[MAX_PATH];// = "abcd.txt";
BOOL bRet = FALSE;
ofn.lpstrFile = sFileDef;
// ofn.lpstrFile[0] = '/0'; //设置为 '/0' 则录入框没默认值
ofn.Flags = OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_PATHMUSTEXIST; //OFN_FILEMUSTEXIST|
ofn.lpstrTitle = "打开";
bRet = GetOpenFileName(&ofn);
if (bRet)
{
MessageBox(0, ofn.lpstrFile, "FILE", 0);
SetDlgItemText(hDlg, ID_ED_SELTFILE, ofn.lpstrFile);
}
//------------保存文件对话框----------
char sFileDef[MAX_PATH];// = "abcd.txt";
BOOL bRet = FALSE;
ofn.lpstrFile = sFileDef;
// ofn.lpstrFile[0] = '/0'; //设置为 '/0' 则录入框没默认值
ofn.Flags = OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT;
ofn.lpstrTitle="另存为...";
bRet = GetSaveFileName(&ofn);
//------OpenSaveDialog------End--------
if (bRet)
{
MessageBox(0, ofn.lpstrFile, "FILE", 0);
SetDlgItemText(hDlg, ID_ED_SELTFILE, ofn.lpstrFile);
}
(4)返回路径保存在 ofn.lpstrFile 变量中
相关文章推荐
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- 子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- 文件打开(保存)对话框:GetOpenFileName和 GetSaveFileName
- 资源地址;浏览和打开文件;GetOpenFileName;GetSaveFileName;OPENFILENAME;PtrToStringChars;.NET类库的打开文件夹操作
- 子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- 使用GetOpenFileName和GetSaveFileName函数会改变当前目录的问题
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- vba使用win32 API(GetOpenFileName )实现打开文件对话框