源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-07 19:34 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++选择文件夹代码的封装
本文实例讲述了C++选择文件夹代码的封装,分享给大家供大家参考。具体方法如下: 该实例分为DirDialog.h头文件与DirDialog.cpp源文件。 DirDialog.h头文件代码如下:
[u]复制代码[/u] 代码如下:
#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源文件代码如下:
[u]复制代码[/u] 代码如下:
#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)  {  }
使用时的代码如下:
[u]复制代码[/u] 代码如下:
CDirDialog dir;  if (dir.DoBrowse(hwndDlg, "title"))  {   ::MessageBoxA(hwndDlg, dir.GetPath(), "", MB_OK);  }
希望本文所述对大家的C++程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部