1、打开文件对话框
OPENFILENAME ofn = { 0 };
TCHAR strFilename[MAX_PATH] = { 0 };//用于接收文件名 MAX_PATH=260
ofn.lStructSize = sizeof(OPENFILENAME);//结构体大小
ofn.hwndOwner = NULL;//拥有着窗口句柄,为NULL表示对话框是非模态的,实际应用中一般都要有这个句柄
ofn.lpstrFilter = TEXT("Flie\0*.txt;\0\0");
ofn.nFilterIndex = 1;//过滤器索引
ofn.lpstrFile = strFilename;//接收返回的文件名,注意第一个字符需要为NULL
ofn.nMaxFile = sizeof(strFilename);//缓冲区长度
ofn.lpstrInitialDir = NULL;//对话框初始打开路径
ofn.lpstrTitle = TEXT("Open");//使用系统默认标题留空即可
ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;//文件、目录必须存在,隐藏只读选项
if (GetOpenFileName(&ofn))
{
MessageBox(NULL, strFilename, TEXT("选择的文件"), 0);
}
2、保存文件对话框
ofn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;//目录必须存在,覆盖文件前发出警告
ofn.lpstrTitle = TEXT("SAVE");//使用系统默认标题留空即可
ofn.lpstrDefExt = TEXT("txt");//默认追加的扩展名
if (GetSaveFileName(&ofn))
{
MessageBox(NULL, strFilename, TEXT("保存到"), 0);
}
这篇博客介绍了如何在Windows环境下使用C++实现打开文件和保存文件的对话框功能。通过设置OPENFILENAME结构体参数,实现了指定文件类型过滤、默认路径、对话框标题等配置,并展示了GetOpenFileName和GetSaveFileName函数的用法,确保用户选择的文件存在且路径有效。
6841

被折叠的 条评论
为什么被折叠?



