使用对话框来进行文件夹路径选择SHBrowseForFolder.docVIP

使用对话框来进行文件夹路径选择SHBrowseForFolder.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用对话框来进行文件夹路径选择SHBrowseForFolder.doc

使用SHBrowseForFolder函数 函数作用:使用对话框来进行文件路径选择。 函数声明 PIDLIST_ABSOLUTE SHBrowseForFolder(LPBROWSEINFO lpbi); 参数?lpbi lpbi? [in] A pointer to a BROWSEINFO structure. [在]一个指针为BROWSEINFO结构。? Conveys information used to display the dialog box.传达信息,用来显示该对话框。 返回值? Returns a pointer to an item identifier list (PIDL) that specifies the location of the selected? folder relative to the root of the namespace. 返回的是一个指针,一个项目标识符列表(?PIDL?),指定的位置选定的文件夹相对的根命名空间。 If the user chooses the Cancel button in the dialog box, the return value is NULL. 如果用户选择取消按钮的对话框中,返回值为NULL?。 It is possible that the PIDL returned is that of a folder shortcut rather than a folder. 可能是PIDL话,返回是一个文件夹的快捷方式,而不是一个文件夹。 BROWSEINFO的结构如下: typedef struct _browseinfo {? HWND hwndOwner; //?父窗口句柄 LPCITEMIDLIST pidlRoot; //?要显示的文件夾的根(Root) LPTSTR pszDisplayName; //?保存被选取的文件夾路径的缓冲区 LPCTSTR lpszTitle; //?显示位于对话框左上部的标题 UINT ulFlags; //?指定对话框的外观和功能的標志 BFFCALLBACK lpfn; //?处理事件的回调函数 LPARAM lParam; //?应用程序传给回调函数的参数 int iImage; //?保存被选取的文件夾的图片索引 } BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO pszDisplayName -- --?這個参数指向一個缓冲区,SHBrowseForFolder默认这个缓冲区的大小为MAX_PATH (系统定义的宏,表示一个路径名的最大长度),并用它来保存被选取的文件夹的路径。 ulFlags -- SHBrowseForFolder允许我们指定对话框的功能和外观,这个参数正是起这样的用途。 它的值可以由十几个宏组合而成。比如BIF_RETURNNONLYFSDIRS是返回文件系统的目录, BIF_BROWSEFORCOMPUTER是返回网络上的计算机名,BIF_EDITBOX是显示一个编辑框, 允许用户输入文件夾名。一般来说,如果是简单的用于选择一个文件夹,设置ulFlags = BIF_RETURNONLYLYFSDIRS即可。 pidRoot --   它指向一个ITEMIDLIST结构,作为在列表中显示的文件夹的根目录,如果为NULL則默认为Desktop。 ITEMIDLIST结构除了用在这里外,它还用作函数的返回值(參看函数原型)。那为什么不用字符串来表示这个目录呢, 这个结构怎样表示一个目录呢?下面作一個简单的介紹。 ===================================================== 函数SearchFile应用实例 这是一个可以搜索文件的程序~·?它指定搜索路径时需要?手动填下路径。 现在我们为它添加一个可选择路径的对话框。 1.首先透过一下代码我们可以看出决定?路径指向的便利为?strDir?变量 01?void?CSearchFileDlg::SearchFile(CString strDir,CString strFile) 02?{ 03?CFileFind ff; 04?CString szDir = strDir; 05? 06?if(szDir.Right(1) !=?\\) 07?szDir +=?\\; 08? 09?szDir +=?*.*; 10? 11?BOOL res = ff.FindFile(szDir); 12?while(res) 13?{ 14?res = ff.FindNextFile(); 15?if(ff.GetFileName()==st

文档评论(0)

youyang99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档