为程序添加“打开文件”对话框和“另存为”对话框

Posted Autumn の Box

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为程序添加“打开文件”对话框和“另存为”对话框相关的知识,希望对你有一定的参考价值。

1、相关类:CFileDialog类

  CFileDialog(

    BOOL bOpenFileDialog,

    LPCTSTR lpszDefExt = NULL,

    LPCTSTR lpszFileName = NULL,

    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,

    LPCTSTR lpszFilter = NULL,

    CWnd* pParentWnd = NULL

  );

    bOpenFileDialog:如果将此参数设为TRUE,则构建一个打开对话框;如果将此参数设为FALSE,则构建一个另存为对话框;

    lpszDefExt:指定默认的文件扩展名;

    lpszFileName:指定显示在文件对话框中的初始文件名;

    dwFlags:定制文件对话框,该参数值与OPENFILENAME结构体中的Flags字段相同;

    lpszFilter:用来指定一个或一组文件过滤器,只有选定的文件才会出现在文件列表中;

    pParentWnd:用来指定文件对话框的父窗口或拥有者窗口;

2、改变“打开”或“另存为”对话框的标题

  CFileDialog::m_ofn.lpstrTitle

3、设置过滤器(设置保存类型)

  CFileDialog::m_ofn.lpstrFilter

  注意:各过滤字符串对之间及字符串对内部的两个字符串之间均以\0分割,过滤器结尾必须以\0\0结尾;对于一个字符串对来说,第一个字符串用于描述,如“Text File(*.txt)”;第二个字符串表明使用的文件扩展名,多个扩展名可以用分号隔开,如“*.txt;*.text”;

4、获取和设置文件的相关属性

  CFileDialog::GetPathName

  CFileDialog::GetFileName

  CFileDialog::GetFileExt

  CFileDialog::GetFileTitle

  CFileDialog::GetNextPathName

  CFileDialog::GetStartPosition

//“另存为”对话框示例:
CFileDialog fileDlg(FALSE, "txt");
fileDlg.m_ofn.lpstrTitle = "我要保存在";
fileDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
if(IDOK == fileDlg.DoModal()) {
    CFile file(fileDlg.GetFileName(), CFile::modeCreate | CFile::modeWrite);
    file.Write("hello world!", strlen("hello world!"));
    file.Close();
}
//“打开”对话框示例:
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle = "我要打开";
fileDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0所有文件(*.*)\0*.*\0\0";
if(IDOK == fileDlg.DoModal()) {
    CFile file(fileDlg.GetFileName(), CFile::modeRead);
    char *pBuf;
    DWORD dwFileLen;
    dwFileLen = file.GetLength();
    pBuf = new char[dwFileLen + 1];
    pBuf[dwFileLen] = 0;
    file.Read(pBuf, dwFileLen);
    file.Close();
    MessageBox(pBuf);
}

 

以上是关于为程序添加“打开文件”对话框和“另存为”对话框的主要内容,如果未能解决你的问题,请参考以下文章

文件对话框,python,另存为

Chrome 扩展程序中未显示另存为对话框

用于在另存为对话框中将工作表另存为预命名文件的 VBA 代码

程序中的对话框应用- ”另存为“对话框

winform 对话框,保存,另存为,还有打印控件

返回“另存为”对话框 powerbuilder