手机
当前位置:查字典教程网 >编程开发 >C语言 >C++选择文件夹代码的封装
C++选择文件夹代码的封装
摘要:本文实例讲述了C++选择文件夹代码的封装,分享给大家供大家参考。具体方法如下:该实例分为DirDialog.h头文件与DirDialog.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++程序设计有所帮助。

【C++选择文件夹代码的封装】相关文章:

C语言解线性方程的四种方法

c++大数阶乘的实现方法

C++产生随机数的实现代码

解析四方定理的应用

c语言读取obj文件转换数据的小例子

VC解析XML文件-CMarkup的使用详解

C++中继承与组合的区别详细解析

C++类URL编码和解码使用技巧

解析C++无锁队列的实现代码

C++对象的动态建立与释放详解

精品推荐
分类导航