服务器之家

服务器之家 > 正文

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

时间:2021-02-06 13:11     来源/作者:C++教程网

本文实例讲述了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, 0, MAX_PATH); 
    memset(m_szPath, 0, 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++程序设计有所帮助。

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部