VC++文件浏览和树状文件夹浏览

1、“打开”和“另存为”对话框

CString CTestDlg::selectFileName(BOOL isOpen, CString defaultFileName, CString &fileName)

{

//isOpen = TRUE---->open打开

//isOpen = FALSE--->save另存为

CFileDialog hFileDlg(isOpen, NULL ,

defaultFileName,

OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,

TEXT("注册表文件 (*.reg)|*.reg|所有文件(*.*)|*.*|"),

NULL);

 

CString currentDir; 

GetCurrentDirectory(MAX_PATH,currentDir.GetBuffer(MAX_PATH)); 

currentDir.ReleaseBuffer();

 

hFileDlg.m_ofn.lpstrInitialDir = currentDir;

//hFileDlg.m_ofn.lpstrTitle = "保存";

if(hFileDlg.DoModal() == IDOK)

{

CString str;

str = hFileDlg.GetPathName();

fileName = hFileDlg.GetFileName();

return str;

}

return NULL;

}

 

2、文件夹浏览

CString CTestDlg::selectPath()
{
//explore
//ShellExecute(NULL, "explore", "D://", NULL, NULL, SW_SHOWDEFAULT);
BROWSEINFO bi;
char buffer[MAX_PATH];
ZeroMemory(buffer, MAX_PATH);
bi.hwndOwner = GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = buffer;
bi.lpszTitle = "请选择软件的安装路径";
bi.ulFlags = BIF_EDITBOX;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
LPITEMIDLIST pList = NULL;
if ((pList = SHBrowseForFolder(&bi)) != NULL) {
char path[MAX_PATH];
ZeroMemory(path, MAX_PATH);
SHGetPathFromIDList(pList, path);
TRACE("select path is :%s/n", path);
CString str;
str.Format("%s", path);
((CEdit*)GetDlgItem(IDC_EDIT_INSTALLPATH))->SetWindowText(str);
return str;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值