如何在 OPENFILENAMEW 中预设文件名

问题描述 投票:0回答:1

我想从我的程序中保存一些数据,我试图给用户一个对话框,他可以在其中选择他想要保存数据的位置和文件名。

此外,我想预设一个文件名,以便用户获得他可能想要的文件名的建议,如果他喜欢,他可以简单地单击对话框中的“保存”,如果不喜欢,他可以覆盖预设。

我发现了数百个如何初始化

OPENFILENAMEW
的示例,但没有一个预设文件名,而我自己的尝试却不起作用。

我想要预设的文件名是数据的一部分,并以

wstring
的形式存在,因此为了更容易理解,我将在这里定义一个。

抛开我确实开始工作的其他部分,它归结为:

wstring MyFileName = L"PresetFileName";

OPENFILENAMEW ofn;
WCHAR szFileName[MAX_PATH];
ZeroMemory(&szFileName, sizeof(szFileName));
ofn.lpstrFile = szFileName;

wstring
转换为
WCHAR
,我就是无法理解。对于我在网上查找的无数示例而言,类似的问题大多都是用“您无法从 wstring 转换为 WCHAR”来回答,但我所知道的几乎所有文本编辑器都在“另存为”对话框(但可能不使用
wstring
)。

那么,如何在不缩短

MyFileName
大小的情况下将
szFileName
变成
szFileName
呢?

winapi
1个回答
0
投票

正如 @JonathanPotter 回答的那样,使用 StringCchCopy 将一个字符串复制到另一个字符串。

可能值得注意的是多字节字符和宽字符之间的转换

© www.soinside.com 2019 - 2024. All rights reserved.