GetSaveFileNameW 是 Win32 API 中用于显示保存文件对话框的函数,其中的 W 表示 Unicode 字符集版本。这个函数用于让用户指定一个文件名以供保存。以下是一个简单的示例:
#include <Windows.h>
#include <Commdlg.h>

int main() {
    OPENFILENAMEW ofn;
    wchar_t szFileName[MAX_PATH] = L"NewFile.txt";

    // 初始化 OPENFILENAME 结构
    ZeroMemory(&ofn, sizeof(ofn));
    ofn.lStructSize = sizeof(ofn);
    ofn.hwndOwner = NULL; // 父窗口句柄,可以是主窗口或者对话框的句柄
    ofn.lpstrFilter = L"Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0";
    ofn.lpstrFile = szFileName;
    ofn.nMaxFile = sizeof(szFileName) / sizeof(wchar_t);
    ofn.Flags = OFN_EXPLORER | OFN_OVERWRITEPROMPT;

    // 显示保存文件对话框
    if (GetSaveFileNameW(&ofn)) {
        // 用户选择了一个文件名,文件名存储在 szFileName 中
        // 可以在这里处理选择的文件名
        wprintf(L"Selected File: %s\n", szFileName);
    } else {
        // 用户点击了取消按钮或者关闭对话框
        wprintf(L"Save operation canceled.\n");
    }

    return 0;
}

在这个示例中,GetSaveFileNameW 函数用于显示一个保存文件对话框,用户可以指定一个文件名。如果用户选择了文件名,选定的文件名将存储在 szFileName 缓冲区中。你可以根据实际需要调整对话框的参数和处理选择文件名的逻辑。这个版本的函数支持 Unicode 字符集,因此可以处理包含非 ASCII 字符的文件名。


转载请注明出处:http://www.zyzy.cn/article/detail/25005/Win32 API/Commdlg.h/GetSaveFileNameW