精华内容
下载资源
问答
  • 主要介绍了C++采用openfilename打开文件对话框用法实例,是C++文件操作中非常实用的技巧,需要的朋友可以参考下
  • void CDemoDlg::OnFileOpen() { // TODO: 在此添加命令处理程序代码 ... _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"), this); dlg.m_ofn.lpstrInitialDir = _T("C:\\"); if(dlg.DoModal() == IDOK) { A.
    void CDemoDlg::OnFileOpen()
    {
    	// TODO: 在此添加命令处理程序代码
    	CFileDialog dlg(TRUE, NULL, NULL,
    		OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST,
    		_T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"),
    		this);
    	dlg.m_ofn.lpstrInitialDir = _T("C:\\");
    	if(dlg.DoModal() == IDOK)
    	{
    		AfxMessageBox(dlg.GetPathName());
    
    		//继续写C++ 文件IO进行打开文件,读文件
    	}
    }
    
    
    void CDemoDlg::OnFileSave()
    {
    	// TODO: 在此添加命令处理程序代码
    	CFileDialog dlg(FALSE, NULL, NULL,
    		OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST,
    		_T("*.txt|*.txt||"),this);
    	if(dlg.DoModal() == IDOK)
    	{
    		AfxMessageBox(dlg.GetPathName());
    
    		//继续写C++ 文件IO进行保存文件
    	}
    }
    
    void CDemoDlg::OnFormatFont()
    {
    	// TODO: 在此添加命令处理程序代码
    	CHARFORMAT cf = {0};
    	cf.cbSize = sizeof(cf);
    	m_edtContent.GetSelectionCharFormat(cf);
    
    	CFontDialog dlg(cf);
    	if(dlg.DoModal() == IDOK)
    	{
    		dlg.GetCharFormat(cf);
    		m_edtContent.SetSelectionCharFormat(cf);
    	}
    }
    
    
    void CDemoDlg::OnFormatColor()
    {
    	// TODO: 在此添加命令处理程序代码
    	CHARFORMAT cf = {0};
    	cf.cbSize = sizeof(cf);
    	cf.dwMask = CFM_COLOR;
    	m_edtContent.GetSelectionCharFormat(cf);
    
    	CColorDialog dlg(cf.crTextColor);
    	if(dlg.DoModal() == IDOK)
    	{
    		cf.crTextColor = dlg.GetColor();
    		cf.dwEffects = 0;
    		m_edtContent.SetSelectionCharFormat(cf);
    	}
    }
    

     

    展开全文
  •   在编程过程中,许多地方需要与文件打交道,这个时候需要打开文件,保存文件或者选择文件夹。在win32系统api中,提供了支持.   首先是选择文件夹,源代码如下所示: #include <io.h> #include <stdio....

      在编程过程中,许多地方需要与文件打交道,这个时候需要打开文件,保存文件或者选择文件夹。在win32系统api中,提供了支持。
      首先是选择文件夹,源代码如下所示:

    #include  <io.h>
    #include  <stdio.h>
    #include  <stdlib.h>
    #include  <direct.h>
    #include  <shlobj.h>
    #include  <algorithm>
    #include  <tchar.h>
    
    //选择文件夹
    static bool SelectFolderPath(std::string& folderName)
    {
    	TCHAR szBuffer[MAX_PATH] = { 0 };
    	BROWSEINFO bi;
    	ZeroMemory(&bi, sizeof(BROWSEINFO));
    	bi.hwndOwner = GetForegroundWindow();
    	bi.pszDisplayName = szBuffer;
    	bi.pidlRoot = NULL;
    	bi.lpszTitle = _T("从下面选文件夹目录:");
    	bi.ulFlags = BIF_NEWDIALOGSTYLE;;
    	LPITEMIDLIST idl = SHBrowseForFolder(&bi);
    	if (NULL == idl)
    	{
    		return false;
    	}
    	SHGetPathFromIDList(idl, szBuffer);
    	folderName = szBuffer;
    	return true;
    }
    

      通过以上代码可以获得合适的文件夹。
      其次需要打开文件和保存文件,源代码如下所示:

    #include <windows.h>
    #include <Commdlg.h>
    
    //打开文件
    static std::string GetOpenFile(char* filter=NULL,char* title=NULL, char* initDirectory=NULL)
    {
    	//文件名
    	std::string filename;
    
    	//打开文件
    	OPENFILENAME ofn = { 0 };
    	TCHAR strFilename[MAX_PATH] = { 0 };//用于接收文件名
    	ofn.lStructSize = sizeof(OPENFILENAME);//结构体大小
    	ofn.hwndOwner = GetForegroundWindow();//拥有着窗口句柄
    	if (filter)
    	{
    		ofn.lpstrFilter = filter;//设置过滤
    	}
    	else
    	{
    		ofn.lpstrFilter = TEXT("所有文件\0*.*\0\0");//设置过滤
    	}	
    
    	ofn.nFilterIndex = 1;//过滤器索引
    	ofn.lpstrFile = strFilename;//接收返回的文件名,注意第一个字符需要为NULL
    	ofn.nMaxFile = sizeof(strFilename);//缓冲区长度
    	ofn.lpstrInitialDir = initDirectory;//初始目录为默认
    
    	//对话框标题
    	if (title)
    	{
    		ofn.lpstrTitle = title;
    	}
    	else
    	{
    		ofn.lpstrTitle = TEXT("请选择一个文件");
    	}
    	
    	ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;//文件、目录必须存在,隐藏只读选项
    	if (GetOpenFileName(&ofn))
    	{
    		filename = strFilename;
    	}
    	return filename;
    }
    
    //打开文件
    static std::string GetSaveFile(char* filter = NULL, char* title = NULL, char* initDirectory = NULL)
    {
    	//文件名
    	std::string filename;
    
    	//打开文件
    	OPENFILENAME ofn = { 0 };
    	TCHAR strFilename[MAX_PATH] = { 0 };//用于接收文件名
    	ofn.lStructSize = sizeof(OPENFILENAME);//结构体大小
    	ofn.hwndOwner = GetForegroundWindow();//拥有着窗口句柄
    	if (filter)
    	{
    		ofn.lpstrFilter = filter;//设置过滤
    	}
    	else
    	{
    		ofn.lpstrFilter = TEXT("所有文件\0*.*\0\0");//设置过滤
    	}
    
    	ofn.nFilterIndex = 1;//过滤器索引
    	ofn.lpstrFile = strFilename;//接收返回的文件名,注意第一个字符需要为NULL
    	ofn.nMaxFile = sizeof(strFilename);//缓冲区长度
    	ofn.lpstrInitialDir = initDirectory;//初始目录为默认
    
    										//对话框标题
    	if (title)
    	{
    		ofn.lpstrTitle = title;
    	}
    	else
    	{
    		ofn.lpstrTitle = TEXT("请选择一个文件");
    	}
    
    	ofn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;//目录必须存在,覆盖文件前发出警告
    	ofn.lpstrDefExt = TEXT("aep");//默认追加的扩展名
    	if (GetSaveFileName(&ofn))
    	{
    		filename = strFilename;
    	}
    	return filename;
    }
    
    void main()
    {
    	std::string filename = GetOpenFile(TEXT("PNG背景图片\0*.png\0所有文件\0*.*\0\0"), "打开PNG背景图片");
    	if (!filename.empty())
    	{
    		//给对应窗口赋值
    	}
    }
    

      在win32下就可以方便的选择文件夹和文件。


      欢迎光临知了软件开发网络平台,本公司定制开发各类软件,主要方向为桌面专业软件开发和插件定制开发,桌面软件主要包括文字图形识别类软件,信息管理类软件,3D打印类软件,视频类软件以及其它涉及专业的各类图形图像处理软件。插件包含AE插件,AI插件,PS插件,PDF插件,3DMAX插件以及Word,Excel等Office插件开发。详情请咨询,微信QQ:312117271,手机:18928899728,邮箱: anjingzhi_sea@163.com.
    公司网址:http://www.zhiliaos.com

    展开全文
  • c/C++文件(夹)选择对话框
  • C++_打开文件对话框

    千次阅读 2017-04-06 11:13:00
    第一个参数: bOpenFileDialog : TRUE则显示打开文件对话框,FALSE则显示保存文件对话框。 第二个参数: lpszDefExt : 指定默认的文件扩展名。 第三个参数: lpszFileName : 指定默认的文件名 。 第四个...

    1.CFileDialog类封装了Windows常用的文件对话框

    CFileDialog构造函数的定义形式为:

    CFileDialog::CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt = NULL,LPCTSTR lpszFileName =NULL,DWORDdwFlags = OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter = NULL,CWnd* pParentWnd = NULL);

    第一个参数: bOpenFileDialog : TRUE则显示打开文件对话框,FALSE则显示保存文件对话框。

    第二个参数: lpszDefExt : 指定默认的文件扩展名。

    第三个参数: lpszFileName : 指定默认的文件名 。

    第四个参数: dwFlags : 指明一些特定风格。

    第五个参数: lpszFilter : 指明可供选择的文件类型和相应的扩展名。

    第六个参数: pParentWnd : 为父窗口指针。

    (1)选择一个xls或者xlsx格式的文件,具体用法如例:

    CString strFileFilter(_T("XLS File(*.xls)|*.xls|XLSX File(*.xlsx)|*.xlsx||"));
    CFileDialog fileOpen(TRUE, _T("*.xls;*.xlsx"), _T("数据表"), OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,strFileFilter , NULL);
    fileOpen.m_ofn.lpstrTitle = _T("对话框标题");
    if (IDOK != fileOpen.DoModal())
        return;
    
    fileOpen.GetPathName ();//选择的路径(E:\CAD选线成果样例1.dwg)
    fileOpen.GetFileName();//文件名称(CAD选线成果样例1.dwg)
    fileOpen.GetFileExt();//文件后缀(dwg)
    

    (2)导出到文件夹内,也可以实现选择到文件夹层而不是文件层

    CFileDialog saveFile = CFileDialog( FALSE,".xls","信息.xls",OFN_CREATEPROMPT|OFN_PATHMUSTEXIST,"Microsoft Excel(*.xls)");
    if (IDOK==saveFile.DoModal())
    {
         CString sExcelFile = saveFile.GetPathName();
    }

    2.DoPromptFileName:MFC显示文件打开对话框获得文件名。

    DoPromptFileName构造函数的定义形式为:

    BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle,DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate);

    第一个参数:fileName:选择的文件路径;第二个参数:nIDSTitle:第三个参数:lFlags:第四个参数:bOpenFileDialog:第五个参数:pTemplate

    具体用法如例:

    CString newName;
    if (!DoPromptFileName(newName, AFX_IDS_OPENFILE, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, TRUE, NULL))
    	return;

     

    转载于:https://my.oschina.net/u/2930533/blog/873907

    展开全文
  • //打开文件对话框 if (GetOpenFileName(&ofn)){ string filePath = TCHAR2STRING(strFileName); int start = filePath.find_last_of('\\'); int end = filePath.find_last_of('.'); string fileName...
    #include<iostream>
    #include<Windows.h>
    #include<commdlg.h>
    #include<string>
    using namespace std;
    /******************************************************************************************
    Function:        TCHAR2STRING
    Description:     TCHAR转string
    Input:           str:待转化的TCHAR*类型字符串
    Return:          转化后的string类型字符串
    *******************************************************************************************/
    string TCHAR2STRING(TCHAR* str){
    	std::string strstr;
    	try
    	{
    		int iLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
    
    		char* chRtn = new char[iLen * sizeof(char)];
    
    		WideCharToMultiByte(CP_ACP, 0, str, -1, chRtn, iLen, NULL, NULL);
    
    		strstr = chRtn;
    	}
    	catch (exception e)
    	{
    	}
    
    	return strstr;
    }
    
    int main(){
    	while (1){
    		OPENFILENAME ofn = { 0 };
    		TCHAR strFileName[MAX_PATH] = { 0 };	//用于接收文件名
    		ofn.lStructSize = sizeof(OPENFILENAME);	//结构体大小
    		ofn.hwndOwner = NULL;					//拥有着窗口句柄
    		ofn.lpstrFilter = TEXT("All\0*.*\0jpg\0*.jpg\0bmp\0*.bmp\0\0");	//设置过滤
    		ofn.nFilterIndex = 1;	//过滤器索引
    		ofn.lpstrFile = strFileName;	//接收返回的文件名,注意第一个字符需要为NULL
    		ofn.nMaxFile = sizeof(strFileName);	//缓冲区长度
    		ofn.lpstrInitialDir = NULL;			//初始目录为默认
    		ofn.lpstrTitle = TEXT("请选择一个文件"); //窗口标题
    		ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY; //文件、目录必须存在,隐藏只读选项
    		//打开文件对话框
    		if (GetOpenFileName(&ofn)){
    			string filePath = TCHAR2STRING(strFileName);
    			int start = filePath.find_last_of('\\');
    			int end = filePath.find_last_of('.');
    			string fileName = filePath.substr(start + 1, end - start - 1);
    			string exten = filePath.substr(end, filePath.length() - end);
    			cout << filePath << endl;
    			cout << fileName << endl;
    			cout << exten << endl;
    		}
    		else{
    			MessageBox(NULL, TEXT("请选择一文件"), NULL, MB_ICONERROR);
    		}
    	}
    	return 0;
    }

    示例结果:

    展开全文
  • Windows打开文件对话框

    2020-06-26 16:20:42
    C++使用Win32接口,打开文件对话框选文件。 /*************************************************************************** *IDE:VS2019 *Language:C/C++ *Project:Windows打开文件对话框 *Author:Raise *...
  • VC_CFileOpen打开文件对话框中实现多选文件.visual c++
  • 我是在C/C++控制台写的打开文件选择对话框,所以很多头文件需要先进行声明,不然功能无法使用 新声明头文件: #include <windows.h> #include <ShlObj.h> #include <stdio.h> #include <...
  • C++中探出打开文件夹对话框并获取文件夹路径,在对选择文件的程序中特别常用
  • 打开文件对话框const char pszFilter[] = _T("EXE File (*.txt)|*.txt|All Files (*.*)|*.*||");CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,pszFilter, this);dlg.m_ofn....
  • MFC打开保存文件对话框.可供参考
  • 由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有。今遇到这个情况已经解决,特写下这篇博文。 1.打开文件对话框常用的方法是使用系统的CFileDialog。这里介绍另外一种方法就是...
  • #c++打开挑选图片对话框 ##选中图片返回图片路径 文件名:selectImage.h #ifndef FINDCONTOURS_SELECTIMAGE_H #define FINDCONTOURS_SELECTIMAGE_H #include <windows.h> #include <commdlg.h> #...
  • MFC打开文件对话框

    2017-02-11 09:10:11
    MFC打开文件对话框,MFC打开文件对话框
  • viusal c++ 2010 多线程打开文件对话框
  • VC打开文件对话框加入自定义的预览,VS2010可用VS2010可用VS2010可用VS2010可用
  • vc定制打开文件对话框,实现文本预览.zip
  • 简单文件对话框一个小的C库,用于在Windows和Linux上打开文件对话框。 用法sfd.c和sfd.h应该放到现有项目中,并与之一起编译-在Windows上comdlg32应该链接起来。 简单文件对话框一个小的C库,用于在Windows和Linux上...
  • C++ 打开选择文件夹对话框选择目录

    千次阅读 2019-02-23 16:17:09
    需要添加头文件: #ifdef WIN32 ...调用文件对话框选择目录: // 选择目录 void CustomInstalWndViewCtrl::OnSigBtnSelectInstallDir() { BROWSEINFO bi; bi.hwndOwner = NULL; bi.pidlRoot = CSIDL_DESK...
  • Visual C++ 开发技术 通用对话框编程 文件打开对话框例程,例程来自《Visual C++ 开发技术大全》,全部打包下载可点击http://download.csdn.net/detail/zhou625315237/5103878
  • C++文件(夹)选择对话框

    万次阅读 2013-11-06 12:05:10
    由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有。今遇到这个情况已经解决,特写下这篇博文。 1.打开文件对话框常用的方法是使用系统的CFileDialog。这里介绍另外一种方法就是...
  • 比如如何在打开文件对话框里预览时同时显示bmp和jpg两种图片的 过滤器设置代码
  • //打开文件选择图形界面以获取文件路径 while (1) { if (GetMessage(&msg, NULL, 0, 0) == FALSE) { break; } //翻译消息 TranslateMessage(&msg); //分发消息 DispatchMessage(&msg); Sleep(20);...
  • SaveFileDialog(保存文件对话框)

    热门讨论 2011-11-01 12:18:33
    VS2008下的一个小程序。类似于word中点击保存,然后打开一个保存文件对话框。当存在相同文件时,提示是否覆盖。
  • vc调用文件浏览对话框(有树型控件的文件打开对话框).visual c++
  • 打开文件夹对话框,代码如下: BROWSEINFO bi; TCHAR Buffer[MAX_PATH]; bi.hwndOwner = NULL; bi.pidlRoot =NULL; bi.pszDisplayName = Buffer; bi.lpszTitle = _T("选择文件夹:"); bi.ulFlags = BIF_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,284
精华内容 18,513
关键字:

c++打开文件对话框

c++ 订阅