- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
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:oBrowse(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);
} |
|