C++选择文件夹代码的封装
C++选择文件夹代码的封装
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例讲述了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语言学习
编程开发子分类