问题标签 [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.
c++ - 从 CFileDialog 调用时,IFileOpenDialog 指针为空
我试图包装CFileDialog
并IFileOpenDialog
在一个类中,这是代码:
然后当我这样称呼它时:
CFileDialog
然后我尝试IFileOpenDialog
直接调用:
这部分代码完美运行。任何人都知道为什么会发生崩溃?这让我很困惑,因为我觉得它们是如此相似。
上面的代码也不起作用(它定义了 IFileOpenDialog* GetDlg(); 在类声明之外)
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
将变为以下,这是不正确的:
第二条路错了!
c++ - 如何将事件挂钩到 CFileDialog?
我正在尝试使用一个事件创建一个“另存为”对话框,该事件将根据我们从过滤器组合框中选择的文件类型更改默认路径。问题是,我看到的所有示例都在结果上执行代码,IDOK
或者IDCANCEL
我需要在对话框仍然打开时执行代码。
此外,如果过滤器具有相同的类型,是否有任何方法可以区分选择的过滤器?该GetFileExt()
方法只返回扩展名,但我无法判断它是第一个 .my 过滤器还是模板 .my 过滤器。
我见过类似的东西,LPOFNHOOKPROC
但没有关于如何使用它的例子,我不确定它是否能解决我的问题。
编辑:
我现在可以通过获取OFN
并检查nFilterIndex
值来获取已选择的特定过滤器。所以剩下的问题是我是否可以根据选择的文件格式更新路径?
编辑2:
我找到了该OnChangeType
方法并在子类中重载了它,它确实执行了该方法和其中的代码,但是当我尝试更新文件路径时,我遇到了访问冲突:
c++ - 自定义 CFileDialog 时如何控制新控件的大小和位置?
我正在使用内置工具自定义 CFileDialog“另存为”对话框。我只是添加一个新的文本标签(AddText或StartVisualGroup)和一个新的组合框(AddComboBox)。一切正常,但我不喜欢新控件的定位和大小。
在我能找到的关于该主题的每篇文章中,新标签和组合框显示为根据现有标签对齐/调整大小(即,文本对齐/大小与“另存为类型:”,新组合对齐/大小与另存为类型组合)。我似乎只能让我的控件在另存为类型组合下对齐并且尺寸较小。
我找不到有关如何调整这些控件的大小或位置的任何信息。
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 上运行的结果相同)。