加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

C++选择文件夹代码的封装

发布时间:2020-12-15 00:56:43 所属栏目:C语言 来源:网络整理
导读:本篇章节讲解C++选择文件夹代码的封装,供大家参考研究。具体方法如下: 该实例分为DirDialog.h头文件与DirDialog.cpp源文件。 DirDialog.h头文件代码如下: 复制代码 代码如下: #pragma once #ifndef __DIRDIALOG_H_HH #define __DIRDIALOG_H_HH #i

本篇章节讲解C++选择文件夹代码的封装,分享给大家供大家参考。具体方法如下:

该实例分为DirDialog.h头文件与DirDialog.cpp源文件。

DirDialog.h头文件代码如下:

复制代码 代码如下:
#pragma once 
#ifndef __DIRDIALOG_H_HH 
#define __DIRDIALOG_H_HH 

#include <Shlobj.h>  

class CDirDialog 

protected: 
    BROWSEINFO m_bi; 
    char m_szDisplayName[MAX_PATH]; //显示名称 
    char m_szPath[MAX_PATH]; //选择的目录 
 
public: 
    //显示对话框 
    BOOL DoBrowse(HWND hwndOwner,LPTSTR pszDisplayName); 
 
    LPCTSTR GetPath(){return m_szPath;}; 
 
    CDirDialog(void); 
    ~CDirDialog(void); 
}; 
 
#endif

DirDialog.cpp源文件代码如下:

复制代码 代码如下:
#include "DirDialog.h" 

CDirDialog::CDirDialog(void) 

    ::ZeroMemory((void*)&m_bi,sizeof(BROWSEINFO)); 
    memset(m_szDisplayName,MAX_PATH); 
    memset(m_szPath,MAX_PATH); 
    m_bi.hwndOwner = NULL; 
    m_bi.pidlRoot = NULL; 
    m_bi.lpszTitle = "请选择文件夹"; 
    m_bi.ulFlags = BIF_RETURNONLYFSDIRS ; 
    m_bi.lpfn = NULL; 
    m_bi.lParam = NULL; 
    m_bi.iImage = NULL; 

 
BOOL CDirDialog::DoBrowse(HWND hwndOwner,LPTSTR pszTitle) 

    m_bi.hwndOwner = hwndOwner; 
    m_bi.lpszTitle = pszTitle; 
    PIDLIST_ABSOLUTE pItem = ::SHBrowseForFolderA(&m_bi); 
    if (pItem != NULL) 
    { 
        ::SHGetPathFromIDListA(pItem,m_szPath); 
        return TRUE; 
    } 
     
    return FALSE; 

 
CDirDialog::~CDirDialog(void) 

}

使用时的代码如下:

复制代码 代码如下:
CDirDialog dir; 
if (dir.DoBrowse(hwndDlg,"title")) 

 ::MessageBoxA(hwndDlg,dir.GetPath(),"",MB_OK); 
}

希望本文所述对大家的C++程序设计有所帮助。

您可能感兴趣的文章:

  • C++实现读取特定路径下文件夹及文件名的方法
  • VC++ 使用 _access函数判断文件或文件夹是否存在
  • C++遍历文件夹下文件的方法
  • C++删除指定文件夹下N天及之前日志文件的方法
  • Python与C++ 遍历文件夹下的所有图片实现代码
  • C++遍历文件夹获取文件列表
  • C++遍历文件夹下的所有文件
  • C++遍历文件夹下所有文件的多种方法
  • C++从一个文件夹中读出所有txt文件的方法示例

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读