您的位置:首页 > 运维架构

使用 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 变量中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: