MFC选择文件(夹)按钮实现

选择文件(夹)

 void CFileSelectDlg::OnBnClickedButtonSelect()
{
if(((CButton*)(GetDlgItem(IDC_RADIO_FILE)))->GetCheck())
{
char strExt[] = "dat";//设置文件的读取类型
CString szFilter = "GeoTiff Files (*.dat)|*.dat|All Files (*.*)|*.*||";
SelectFile(strExt,szFilter);
}
else
{
CString floder = SelectFolder();
SetDlgItemText(IDC_EDIT_PATH,floder);
}
}

选择文件

 bool CFileSelectDlg::SelectFile(char* strExt,CString const& szFilter)
{
CFileDialog dlg(TRUE,strExt,NULL,OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT,szFilter);
dlg.m_ofn.lpstrTitle = "请选择缓存文件";
CString inPath;
CArray<CString,CString> aryFilename;
if(dlg.DoModal() == IDOK)
{
CString filenames;
POSITION posFile = dlg.GetStartPosition();
while(posFile != NULL)
{
aryFilename.Add(dlg.GetNextPathName(posFile));
}
} int SelFileNum = aryFilename.GetSize();
if(SelFileNum==)
{
AfxMessageBox("没有选择缓存文件");
return false;
}
return true;
}

选择文件夹

 CString CFileSelectDlg::SelectFolder()
{
TCHAR szFolderPath[] = {};
CString strFolderPath;
BROWSEINFO sInfo;
::ZeroMemory(&sInfo,sizeof(BROWSEINFO));
sInfo.pidlRoot = ;
sInfo.lpszTitle = "请选择缓存文件所在文件夹";
sInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_EDITBOX |BIF_DONTGOBELOWDOMAIN;
sInfo.lpfn = NULL; LPITEMIDLIST lpidlBrowse = ::SHBrowseForFolder(&sInfo);
if(lpidlBrowse != NULL)
{
if(::SHGetPathFromIDListA(lpidlBrowse,szFolderPath))
{
strFolderPath = szFolderPath;
}
}
if(lpidlBrowse != NULL)
{
::CoTaskMemFree(lpidlBrowse);
}
return strFolderPath;
}

MFC选择文件(夹)按钮实现的更多相关文章

  1. MFC 选择文件夹

    WCHAR szPath[_MAX_PATH] = {}; BROWSEINFO bi; //指定父窗口,在对话框显示期间,父窗口将被禁用 bi.hwndOwner = this->GetSaf ...

  2. MFC 打开文件夹选择框并获取文件夹路径

    CString FicowGetDirectory() { BROWSEINFO bi; char name[MAX_PATH]; ZeroMemory(&bi, sizeof(BROWSEI ...

  3. MFC中打开选择文件夹对话框,并将选中的文件夹地址显示在编辑框中

    一般用于选择你要将文件保存到那个目录下,此程序还包含新建文件夹功能 BROWSEINFO bi; ZeroMemory(&bi, sizeof(BROWSEINFO));  //指定存放文件的 ...

  4. MFC弹出选择文件和选择文件夹代码

    选择文件夹 TCHAR szSelectedDir[]; BROWSEINFO bi; ITEMIDLIST *il; bi.hwndOwner = m_hWnd; bi.pidlRoot = NUL ...

  5. NX二次开发-弹出选择文件夹对话框

    这个UFUN和NOPEN里没有对应的函数和类,要用C++的方法去做. #include "afxdialogex.h"//弹出选择文件夹对话框头文件 #include " ...

  6. Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹

    Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹     unit Unit2; interface uses  Windows, Messages, SysUtils, V ...

  7. C# WINFORM 编程中,选择**文件夹**而不是文件的方法(转)

    我们选择文件可以用 OpenFileDialog ,但是文件夹有两种方法. 法一: 用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能.下面来 ...

  8. C#选择文件、选择文件夹、打开文件

    1.选择文件用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//该值确定是否可以 ...

  9. VB6 选择文件夹路径

    '--------------------------------------------------------------------------------------- ' Module : ...

随机推荐

  1. spring中Constructor、@Autowired、@PostConstruct的顺序

    其实从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成对象p与对象a,才能执行注入.所以,如果一个类A中有个成员变量p被@Autowired注解,那么@Autowired注入 ...

  2. SqlServer查询表名的备注(查询表名描述 MS_Description)

    查询表名描述 MS_Description ? 1 2 3 4 5 SELECT tbs.name 表名,ds.value 描述       FROM sys.extended_properties ...

  3. Java基础知识思维导图

     

  4. js一行代码解决各种IE兼容问题

    在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实 IE给出了解决方案 Google也给出了解决方案 百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html ...

  5. error: undefined reference to 'android::hardware::details::return_status::~return_status()'

    use hidl , make fail. reason is:missing libs:libbinder

  6. 一条分页的SQL语句

    1.概述 在网页中如果显示的数据太多就会占据过多的页面,而且显示速度也会很慢.为了控制每次在页面上显示数据的数量,就可以利用分页来显示数据. 2.技术要点 在SQL Server中要实现SQL分页,需 ...

  7. 转载:IIS 之 连接数、并发连接数、最大并发工作线程数、队列长度、最大工作进程数

    一.IIS连接数 一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,顾名思义即为IIS服务器可以同时容纳客户请求的最高连接数,准确的说应该叫“IIS限制连接数”. 客户请求的连接内容包括: [ ...

  8. CentOS 6安装配置mongodb

    安装过程 服务器下载安装包 下载: curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-4.0.6.tgz; 解压 ...

  9. k8s 网络模型

    一.前言 k8s对Pods之间如何进行组网通信提出了要求,k8s对集群的网络有以下要求: 所有的Pods之间可以在不使用NAT网络地址转换的情况下相互通信 所有的Nodes之间可以在不使用NAT网络地 ...

  10. linklist和arraylist区别

    ArrayList更适合读取数据,linkedList更多的时候添加或删除数据.