手机
当前位置:查字典教程网 >编程开发 >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++ 构造双向链表的实现代码

C++中点操作符和箭头操作符的使用详解

解析四方定理的应用

C++中引用的使用总结

C++中拷贝构造函数的总结详解

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

C++中简单读写文本文件的实现方法

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

精品推荐
分类导航