VC6.0打开、保存文件对话框和浏览文件夹对话框

一。打开文件夹:

1。CFileDialog实现

 CFileDialog hFileDlg(true,NULL ,  NULL,   OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,  TEXT("驱动文件 (*.sys)|*.sys|所有文件(*.*)|*.*|"),  NULL);
 if(hFileDlg.DoModal() == IDOK)
 {
  m_path = hFileDlg.GetPathName();
  UpdateData(FALSE);
 }

VC6.0打开、保存文件对话框和浏览文件夹对话框 - 加菲 - 视频会议软件开发 - 加菲
 
VC6.0打开、保存文件对话框和浏览文件夹对话框 - 加菲 - 视频会议软件开发 - 加菲
 

2。API实现


 OPENFILENAMEA ofn;       
 char szFile[260];       
 
 ZeroMemory(&ofn, sizeof(ofn));
 ofn.lStructSize = sizeof(ofn);
 ofn.hwndOwner = NULL;
 ofn.lpstrFile = szFile;
 ofn.lpstrFile[0] = '\0';
 ofn.nMaxFile = sizeof(szFile);
 ofn.lpstrFilter = "音频文件\0*.wma\0";
 ofn.nFilterIndex = 1;
 ofn.lpstrFileTitle = NULL;
 ofn.nMaxFileTitle = 0;
 ofn.lpstrInitialDir = NULL;
 ofn.Flags = 0;
 
 
 if (GetOpenFileNameA(&ofn)==FALSE) 
  return S_FALSE;
 
 CString c_save_path=ofn.lpstrFile;

二、保存文件

同上,只不过将“ CFileDialog hFileDlg(true,NULL ”改为“ CFileDialog hFileDlg(false,NULL ”,或者将GetOpenFileNameA改为GetSaveFileNameA,即可。

三、浏览文件夹对话框

//回调函数
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
    if(uMsg==BFFM_SELCHANGED||uMsg==BFFM_INITIALIZED)
    {
        if(uMsg==BFFM_INITIALIZED)
        {
            ::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,
                LPARAM(lpData));
        }
    }
    return 0;
}

 
 TCHAR chPath[255]; //用来存储路径的字符串
 CString strPath = "";
 BROWSEINFO bInfo;
 GetModuleFileName(NULL,chPath,MAX_PATH);
 strPath=chPath;
 ZeroMemory(&bInfo, sizeof(bInfo));
 bInfo.hwndOwner = m_hWnd;
 bInfo.lpszTitle = _T("请选择路径: ");     
 bInfo.ulFlags   = BIF_RETURNONLYFSDIRS|BIF_EDITBOX;
 bInfo.lpfn      = BrowseCallbackProc;
 bInfo.lParam    = (LPARAM)strPath.GetBuffer(strPath.GetLength());

 LPITEMIDLIST lpDlist; //用来保存返回信息的IDList
 lpDlist = SHBrowseForFolder(&bInfo) ; //显示选择对话框
 if(lpDlist != NULL)  //用户按了确定按钮
 {
  SHGetPathFromIDList(lpDlist, chPath);//把项目标识列表转化成字符串
  strPath = chPath; //将TCHAR类型的字符串转换为CString类型的字符串
  m_save_path=strPath;
  UpdateData(FALSE);
 }

转载于:https://my.oschina.net/laopiao/blog/122349

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值