问题标签 [cfiledialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
213 浏览

c++ - 从 CFileDialog 调用时,IFileOpenDialog 指针为空

我试图包装CFileDialogIFileOpenDialog在一个类中,这是代码:

然后当我这样称呼它时:

CFileDialog然后我尝试IFileOpenDialog直接调用:

这部分代码完美运行。任何人都知道为什么会发生崩溃?这让我很困惑,因为我觉得它们是如此相似。

上面的代码也不起作用(它定义了 IFileOpenDialog* GetDlg(); 在类声明之外)

0 投票
2 回答
651 浏览

c++ - 带有 OFN_ALLOWMULTISELECT 的 CFileDialog 快捷方式的结果不正确

有人可以让我知道我在这里做错了什么吗?

MFC 项目,我CFileDialog用来让用户选择多个文件,例如:

因此,如果说,有两个快捷方式文件:

shortcut_1.lnk文件指的是:"D:\Folder\Project_B\Release\Name of Project B.exe"

shortcut_2.lnk那是指_"D:\Folder\Project_A\Release\Name of Project A.exe"

如果我从上面代码生成的“文件打开”对话框中选择它们,我的结果strPaths将变为以下,这是不正确的:

第二条路错了!

0 投票
1 回答
573 浏览

c++ - 如何将事件挂钩到 CFileDialog?

我正在尝试使用一个事件创建一个“另存为”对话框,该事件将根据我们从过滤器组合框中选择的文件类型更改默认路径。问题是,我看到的所有示例都在结果上执行代码,IDOK或者IDCANCEL我需要在对话框仍然打开时执行代码。

此外,如果过滤器具有相同的类型,是否有任何方法可以区分选择的过滤器?该GetFileExt()方法只返回扩展名,但我无法判断它是第一个 .my 过滤器还是模板 .my 过滤器。

我见过类似的东西,LPOFNHOOKPROC但没有关于如何使用它的例子,我不确定它是否能解决我的问题。

编辑:

我现在可以通过获取OFN并检查nFilterIndex值来获取已选择的特定过滤器。所以剩下的问题是我是否可以根据选择的文件格式更新路径?

编辑2:

我找到了该OnChangeType方法并在子类中重载了它,它确实执行了该方法和其中的代码,但是当我尝试更新文件路径时,我遇到了访问冲突:

0 投票
0 回答
113 浏览

c++ - 自定义 CFileDialog 时如何控制新控件的大小和位置?

我正在使用内置工具自定义 CFileDialog“另存为”对话框。我只是添加一个新的文本标签(AddTextStartVisualGroup)和一个新的组合框(AddComboBox)。一切正常,但我不喜欢新控件的定位和大小。

在我能找到的关于该主题的每篇文章中,新标签和组合框显示为根据现有标签对齐/调整大小(即,文本对齐/大小与“另存为类型:”,新组合对齐/大小与另存为类型组合)。我似乎只能让我的控件在另存为类型组合下对齐并且尺寸较小。

我找不到有关如何调整这些控件的大小或位置的任何信息。

0 投票
0 回答
81 浏览

c++ - 在 CFileDialog 上重新定位过滤器控件

我显示一个CFileDialog

在 Windows 10 上看起来像这样:

文件对话框 - 过滤器

我之前可能已经问过这个问题,但我希望过滤器框位于文件名下,就像在 Visual Studio 中一样:

Visual Studio 过滤器

我支持:

  • Windows 7的
  • 视窗 8
  • 视窗 10

我们如何在使用 Visual Studio 2019 构建的 MFC 项目中实现相同的目标?

0 投票
2 回答
91 浏览

c++ - CFileDialog“保存”按钮不从 DoModal 返回

使用下面的代码,文件保存对话框按预期显示,带有两个按钮:保存和取消。单击 Cancel 会返回result=IDCANCEL,但单击 Save 或键入 Enter 不会返回 from DoModal,只是重新绘制 Filename 窗口。是否有任何原因“保存”按钮不起作用?

CFileDialog如果 的可选参数is ,则行为是相同的bVistaStyle=FALSE

Visual Studio 2019 v16.7.7,32 位调试版本,在 64 位 Windows 7 上构建并运行(在 64 位 Windows 10 上运行的结果相同)。