手机
当前位置:查字典教程网 >编程开发 >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++类URL编码和解码使用技巧

C++ 基本算法 冒泡法、交换法、选择法、实现代码集合

C语言实现修改文本文件中特定行的实现代码

获取一个文件行数的方法

C++中引用的使用总结

C实现分子沉积模拟的示例代码

C语言中宏定义使用的小细节

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

解决C++中事件不响应的方法详解

精品推荐
分类导航