浏览文件夹

void CMy123View::OnFolderOpen()
{

 BROWSEINFO bInfo;//定义一个BROWSEINFO结构体对象,BROWSEINFO结构中包含有用户选中目录的重要信息。


 ZeroMemory(&bInfo, sizeof(bInfo));//The ZeroMemory function fills a block of memory with zeros


 bInfo.hwndOwner = m_hWnd;//Handle to the owner window for the dialog box;


 //bInfo.lpszTitle = _T("请选择路径: ");//_T("")是一个宏,定义于tchar.h下,他的作用是让你的程序支持Unicode编码


 bInfo.ulFlags = BIF_RETURNONLYFSDIRS; //BIF_RETURNONLYFSDIRS:Only return file system directories   

 

 LPITEMIDLIST lpDlist; //用来保存返回信息的IDList


 lpDlist = SHBrowseForFolder(&bInfo) ; //显示选择对话框,将文件夹信息传递给lpDlist

SHGetPathFromIDList(lpDlist, chPath);//把项目标识列表转化成char型字符串
strPath = chPath; //将TCHAR类型的字符串转换为CString类型的字符串


 。。。
}

 

 

BROWSEINFO结构体:

 

Contains parameters for the SHBrowseForFolder function and receives information about the folder selected by the user. 包含了SHBrowseForFolder函数的参数,接收用户所选文件夹的信息。

 

LPITEMIDLIST:

指向ITEMIDLIST结构体的指针;

 

typedef struct _ITEMIDLIST {
    SHITEMID mkid;
} ITEMIDLIST, * LPITEMIDLIST;
typedef const ITEMIDLIST * LPCITEMIDLIST;

 

 

 

 

你可能感兴趣的:(文件夹)