浏览文件夹

    技术2025-02-25  43

    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;

     

     

     

     

    最新回复(0)