我想向 TSaveDialog 添加一个复选框或其他 VCL 组件。
坎图说,
新的 Vista 打开和保存对话框(由 IFileOpenDialog 和
IFileSaveDialog 接口)由新的 FileOpenDialog 直接映射
FileSaveDialog组件,也是标准的OpenDialog和SaveDialog组件使用
设置全局 UseLatestCommonDialogs 时的新样式。
我不知道这意味着什么(我从未做过任何接口编程......)
而且我不想使用第三方工具。
我刚才在网络搜索中看到它建议我查看 TOpenPictureDialog 代码并复制它。
在尝试任何路径之前,我想我应该在这里寻求一些指导。关于 XP 到 Win7 解决方案以独立于 Windows 版本的方式向现代文件、打开对话框添加复选框有什么建议吗?
汤姆
I want to add a checkbox or other VCL component to the TSaveDialog.
Cantu says,
The new Vista Open and Save dialog boxes (implemented by the IFileOpenDialog and
IFileSaveDialog interfaces) are directly mapped by the new FileOpenDialog and
FileSaveDialog components, but also the standard OpenDialog and SaveDialog component uses
the new style when the global UseLatestCommonDialogs is set.
I have no idea what that means (I've never done any Interface programming...)
And I don't want to use third party tools.
I saw it suggested on a web search just now that I look at the TOpenPictureDialog code and copy it.
Before trying any of the paths, I thought I'd ask here for some guidance. Any suggestions on an XP through Win7 solution to adding a checkbox to a modern File, Open dialog box in a Windows-version independent manner?
Tom
发布评论
评论(2)
罗伯特,您可以使用对话框模板来做到这一点。
首先,您必须将模板存储为应用程序中的资源,然后使用
TOpenFilename
结构(不用担心名称,打开和保存对话框是相同的),最后调用GetSaveFileName
函数传递TOpenFilename
结构。检查此示例
使用对话框模板创建一个资源文件(称为SaveDialog.rc)(查看添加的MyCheckBox)
这是源代码
,这是输出
Robert, you can do that using a dialog template.
First you must store the template as a resource in your app, then load the template using the
TOpenFilename
structure (don't worry by the name, is the same for open and save dialogs) and finally call theGetSaveFileName
function passing theTOpenFilename
structure.check this sample
Create a resource file (calledSaveDialog.rc) with the dialog template (look the MyCheckBox added)
this is the source code
and this is the output
您可以使用模板来完成此操作,但这会导致 Vista/7 中出现旧版对话框。在这些平台上,您应该使用 IFileDialogCustomize。当然,为了支持 XP,您还需要实现模板方法。
You can do this with a template but this leads to the legacy dialogs in Vista/7. On those platforms you should make use of IFileDialogCustomize. Of course to support XP you need to implement the template approach too.