MFC对话框选择多个文件及选择文件夹

本文主要介绍:MFC中,如何用对话框选择多个文件,以及如何选择文件夹(不选择文件)。

一、对话框选择多个文件

对话框的设置比较简单,只需在对话框风格中添加 OFN_ALLOWMULTISELECT即可,关键是点击确定后如何读取多个文件的路径,程序如下:

	char strExt[_MAX_EXT] = "tif";//设置读取的文件类型
	CString szFilter = "GeoTiff Files (*.tif)|*.tif|All Files (*.*)|*.*||";
	CFileDialog   dlg( TRUE, strExt,NULL,OFN_FILEMUSTEXIST | OFN_HIDEREADONLY| OFN_ALLOWMULTISELECT,szFilter );
	dlg.m_ofn.lpstrTitle = _T("请选择需要处理的图像!");//设置标题
	CString inPath;
	CArray<CString, CString> aryFilename;
	if(dlg.DoModal() == IDOK)
	{
	    POSITION posFile=dlg.GetStartPosition();
	    while(posFile!=NULL)
	    {
			aryFilename.Add(dlg.GetNextPathName(posFile));
	    }
	}
	int SelFileNum = aryFilename.GetSize();//获取选择的文件数
	if(SelFileNum==0)
	{
		AfxMes
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在MFC中,可以通过以下步骤在对话框中创建一个视图: 1. 首先,打开MFC应用程序的代码。 2. 在对话框资源中定义一个静态控件,该控件将用于容纳视图。 3. 在对话框类的头文件中添加一个成员变量,用于表示视图对象。 4. 打开对话框类的源文件,并在OnInitDialog()函数中进行如下操作: a. 调用基类的OnInitDialog()函数。 b. 创建视图对象,使用CreateView()函数并传入静态控件的ID和对话框指针。 c. 将视图对象指针保存到成员变量中。 ```c++ BOOL CMyDialog::OnInitDialog() { CDialog::OnInitDialog(); // 创建视图对象 CRect rect; GetDlgItem(IDC_STATIC_VIEW)->GetWindowRect(&rect); ScreenToClient(&rect); m_pView = new CMyView(); m_pView->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, this, IDC_STATIC_VIEW); return TRUE; } ``` 5. 最后,别忘记在对话框类的析构函数中删除视图对象。 ```c++ CMyDialog::~CMyDialog() { if (m_pView != nullptr) { delete m_pView; m_pView = nullptr; } } ``` 通过以上步骤,就可以在对话框中成功创建一个视图对象,并将其显示在静态控件中。这样就可以在对话框中展示自定义的图形、数据等内容,并实现与用户的交互。 ### 回答2: 在MFC中,在对话框中创建一个视图有两种方法可以实现。 方法一:使用视图类(CView)和文档类(CDocument) 1. 创建一个新的MFC应用程序项目,选择“单文档”或“多文档”模式。 2. 在资源视图中,打开对话框资源文件(.rc)。 3. 在对话框选择插入->ActiveX 控件。 4. 在弹出的对话框中,选择“Visual C++ 控件类”,然后点击“添加新控件类…”按钮。 5. 输入控件类名,选择CView作为基类,然后点击“完成”。 6. 给控件设置一个唯一的ID。 7. 在对话框类(CDialog)的代码文件中,添加对CView类的成员变量。 8. 在OnInitDialog()函数中,使用Create()函数创建视图。 方法二:使用静态控件(CStatic)和视图类(CView) 1. 创建一个新的MFC应用程序项目。 2. 在资源视图中,打开对话框资源文件(.rc)。 3. 在对话框选择插入->控件->静态文本。 4. 调整静态文本的大小和位置,使其占据你想要的视图区域。 5. 在对话框类(CDialog)的代码文件中,添加对CView类的成员变量。 6. 在OnInitDialog()函数中,使用Create()函数创建视图,并将其父窗口设置为静态文本的句柄。 无论使用哪种方法,创建视图后,需要在对话框类的OnSize()函数中调整视图的大小和位置,以保证视图随着对话框的大小改变而调整。 总结:以上是两种在MFC对话框中创建视图的方法。使用方法一可以使视图和文档类关联,方便进行数据的读写和操作;而方法二则更加简单直接。根据项目需求以及个人偏好,选择合适的方法创建视图即可。 ### 回答3: 在MFC中,我们可以在对话框中创建一个视图,可以通过以下步骤实现: 1. 首先,在MFC应用程序的资源文件夹中打开对话框编辑器,选择一个适当的对话框进行编辑。 2. 在对话框编辑器中,将“工具箱”窗口中的“控件”组件显示出来。 3. 在“控件”组件中找到“ActiveX Control”(“ActiveX 控件”),并在对话框中绘制一个合适大小的矩形。 4. 右键单击绘制的矩形,选择“添加变量”。 5. 在“添加变量”对话框中,将控件名称设置为适当的名称,选择“值”类型为“Control”(“控件”),然后单击“完成”。 6. 在对话框的头文件中,找到对控件变量的声明,并将其类型更改为“CWnd”。 7. 在对话框类的源文件(.cpp)中,找到OnInitDialog()函数。 8. 在OnInitDialog()函数中添加以下代码: ``` // 获取控件指针 CWnd* pWnd = GetDlgItem(IDC_YOUR_CONTROL_ID); // 创建视图对象 CYourViewClass* pView = new CYourViewClass(); // 获取视图的矩形区域 CRect rect; pWnd->GetWindowRect(rect); ScreenToClient(rect); // 创建视图窗口 pView->Create(NULL, NULL, WS_VISIBLE | WS_CHILD | WS_BORDER, rect, this, IDC_YOUR_VIEW_ID); // 调整视图窗口的大小和位置 pView->MoveWindow(rect); ``` 注意:需要将“IDC_YOUR_CONTROL_ID”和“IDC_YOUR_VIEW_ID”替换为适当的控件和视图ID。 9. 编译并运行应用程序,你翻看对话框时将会在指定的位置看到创建的视图。 在对话框中创建视图可以实现为用户提供更丰富的交互功能,例如通过绘图或显示图形等。但也需要处理好视图的生命周期和内存管理,防止内存泄漏和其他问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值