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);
}