11 enum class FileDialogFlags : DWORD {
26 AllowMultiSelect = 0x00000200,
33 CreatePrompt = 0x00002000,
38 DontAddTorecent = 0x02000000,
41 EnableHook = 0x00000020,
47 EnableIncludeNotify = 0x00400000,
53 EnableSizing = 0x00800000,
60 EnableTemplate = 0x00000040,
67 EnableTemplateHandle = 0x00000080,
78 Explorer = 0x00080000,
82 ExtensionDifferent = 0x00000400,
88 FileMustExist = 0x00001000,
92 ForceShowHidden = 0x10000000,
95 HideReadOnly = 0x00000004,
101 LongNames = 0x00200000,
105 NoChangeDir = 0x00000008,
109 NoDereferenceLinks = 0x00100000,
113 NoLongNames = 0x00040000,
116 NoNetworkButton = 0x00020000,
119 NoReadOnlyReturn = 0x00008000,
125 NoTestFileCreate = 0x00010000,
134 NoValidate = 0x00000100,
138 OverwritePrompt = 0x00000002,
142 PathMustExist = 0x00000800,
146 ReadOnly = 0x00000001,
153 ShareAware = 0x00004000,
158 ShowHelp = 0x00000010,
164 _SW_ENUM_ENABLE_BIT_OPERATIONS(FileDialogFlags);
195 std::vector<wchar_t> _buffer;
200 std::vector<std::wstring> _defaultExts;
219 bool AddFilter(
const std::wstring &name,
const std::wstring &filter,
const std::wstring &defaultExt = L
"");
226 int SetFilter(std::initializer_list<FileFilterItem> filters);
253 OPENFILENAMEW _ofn{};
258 std::vector<wchar_t> _buffer;
268 std::wstring _initialDir;
411 std::wstring _initialFileName;
447 void _SetInitialFileName();
“打开文件”对话框与“另存为”对话框的基类
Definition FileDialog.h:248
FileDialog()
初始化FileDialog
const Property< int > FilterIndex
当前筛选器的索引,索引值从0开始
Definition FileDialog.h:304
const Property< bool > MultiSelect
是否允许多选
Definition FileDialog.h:314
const ReadOnlyProperty< sw::List< std::wstring > > FileNames
所有选中的文件路径
Definition FileDialog.h:319
const ReadOnlyProperty< FileFilter * > Filter
筛选器
Definition FileDialog.h:299
const Property< std::wstring > Title
对话框标题,设为空字符串可显示默认标题
Definition FileDialog.h:289
void SetFilter(const FileFilter &filter)
设置筛选器
const Property< int > BufferSize
储存文件名的缓冲区大小,值不能小于MAX_PATH
Definition FileDialog.h:279
virtual int ShowDialog(Window &owner)=0
显示对话框,并指定所有者窗口
void ClearBuffer()
清空缓冲区,显示对话框前必须调用此函数
virtual void ProcessFileName(std::wstring &fileName)
处理文件路径,获取文件路径时会先调用这个函数对返回值进行处理
const ReadOnlyProperty< std::wstring > FileName
选中文件的路径
Definition FileDialog.h:309
virtual void Show() override
FileDialog默认不支持该函数,调用该函数不会执行任何操作
virtual void Close() override
FileDialog默认不支持该函数,调用该函数不会执行任何操作
OPENFILENAMEW * GetOFN()
获取OPENFILENAMEW指针
const Property< std::wstring > InitialDir
初始目录
Definition FileDialog.h:294
wchar_t * GetBuffer()
获取指向缓冲区的指针
const Property< FileDialogFlags > Flags
对话框标志
Definition FileDialog.h:284
virtual int ShowDialog(Window *owner=nullptr) override=0
显示对话框,并指定所有者窗口
文件筛选器
Definition FileDialog.h:190
int SetFilter(std::initializer_list< FileFilterItem > filters)
清空现有筛选器并重新设置筛选器
FileFilter()=default
默认构造函数
bool AddFilter(const std::wstring &name, const std::wstring &filter, const std::wstring &defaultExt=L"")
添加筛选器
const wchar_t * GetDefaultExt(int index)
获取指定索引处筛选器的默认扩展名
FileFilter(std::initializer_list< FileFilterItem > filters)
初始话并设置筛选器
wchar_t * GetFilterStr()
获取OPENFILENAMEW结构体lpstrFilter格式的字符串
对话框接口
Definition IDialog.h:11
“打开文件”对话框
Definition FileDialog.h:382
OpenFileDialog()
初始化OpenFileDialog
virtual int ShowDialog(Window *owner=nullptr) override
显示对话框,并指定所有者窗口
virtual int ShowDialog(Window &owner) override
显示对话框,并指定所有者窗口
属性
Definition Property.h:1743
只读属性
Definition Property.h:1828
“另存为”对话框
Definition FileDialog.h:406
virtual int ShowDialog(Window *owner=nullptr) override
显示对话框,并指定所有者窗口
virtual int ShowDialog(Window &owner) override
显示对话框,并指定所有者窗口
const Property< std::wstring > InitialFileName
初始文件名
Definition FileDialog.h:417
virtual void ProcessFileName(std::wstring &fileName) override
处理文件路径,获取文件路径时会先调用这个函数对返回值进行处理
SaveFileDialog()
初始化SaveFileDialog
文件筛选器信息
Definition FileDialog.h:169
std::wstring name
文本
Definition FileDialog.h:173
std::wstring defaultExt
默认扩展名,当SaveFileDialog用户没有填写扩展名时会使用该值作为扩展名
Definition FileDialog.h:183
std::wstring filter
筛选器字符串,有多个类型时用分号分隔
Definition FileDialog.h:178