递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2085|回复: 2
打印 上一主题 下一主题

[视窗] 修复 浏览文件夹() @飞扬工作室 直接替换官方库方法。

[复制链接]

346

主题

1599

帖子

6533

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6533
QQ
跳转到指定楼层
楼主
发表于 2024-2-27 02:12:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
直接替换官方库方法。
支持第三个参数,可空。用于设置初始目录。
话说windows浏览文件夹这块真丑。
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 浏览文件夹 <公开 类型 = 文本型 注释 = "  打开一个对话框,浏览系统中存在的所有文件夹,返回被选定" 注释 = "文件夹的路径名,如果未选中任何文件夹,则返回空文本."
  3.         注释 = "  仅用作本对象的实际类型为"窗口"或"MDI主窗口"的情况." 折叠 折叠2>
  4. 参数 标题 <类型 = 文本型 注释 = "提供显示在对话框上部的标题文本">
  5. 参数 是否包含文件 <类型 = 逻辑型 注释 = "指定是否在浏览框中同时列出文件名" @默认值 = 假>
  6. 参数 初始目录 <类型 = 文本型 @默认值 = 空对象>
  7. {
  8.     变量 结果变量 <类型 = 文本型>
  9.     @ BROWSEINFO inf;
  10.     @ ZERO_MEM (&inf, sizeof (inf));
  11.     @ inf.hwndOwner = GetMfcWndHandle ();
  12.     @ if (!@<初始目录>.IsNullObject ()){inf.pidlRoot = ILCreateFromPath(@<初始目录>.GetText ()); }
  13.     @ TCHAR path [MAX_PATH];
  14.     @ path [0] = '\0';
  15.     @ inf.pszDisplayName = path;
  16.     @ inf.lpszTitle = @<标题>.GetText ();
  17.     @ inf.ulFlags = BIF_EDITBOX;
  18.     @ if (@<是否包含文件>)
  19.     @     inf.ulFlags |= BIF_BROWSEINCLUDEFILES;
  20.     @ LPITEMIDLIST pItem = SHBrowseForFolder (&inf);
  21.     @ if (pItem != NULL)
  22.     @ {
  23.     @     path [0] = '\0';
  24.     @     if (SHGetPathFromIDList (pItem, path))
  25.     @         @<结果变量>.SetText (path);
  26.     @     IMalloc* pMalloc;
  27.     @     if (SUCCEEDED (SHGetMalloc (&pMalloc)))
  28.     @     {
  29.     @         pMalloc->Free (pItem);
  30.     @         pMalloc->Release ();
  31.     @     }
  32.     @ }
  33.     返回 (结果变量)
  34. }
复制代码


专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

51

主题

540

帖子

4241

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4241
沙发
发表于 2024-2-27 08:38:22 | 只看该作者
必须点赞。。。。
回复

使用道具 举报

36

主题

444

帖子

1550

积分

金牌会员

Rank: 6Rank: 6

积分
1550
QQ
板凳
发表于 2024-2-27 10:42:53 | 只看该作者
添砖加瓦 众人拾柴火焰高 让火山越来越火 越强大
Q 75520266
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 18:51 , Processed in 0.079321 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表