winapi openfiledialog c++

winapi openfiledialog c++

本文关键字:c++ openfiledialog winapi      更新时间:2023-10-16

我使用mingw, c++我想打开多个文件,像这样:

OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = "TXT"
        "*.txt";
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT;
ofn.lpstrDefExt = "txt";

但是我怎样才能得到文件名呢?如果我检查szFileName变量,它只包含文件夹名称。

来自文档:

如果用户选择了多个文件, lpstrFile 缓冲区返回当前目录的路径,后跟所选文件的文件名。 nFileOffset 成员是第一个文件名

的偏移量,以字节或字符为单位。

目录和文件名字符串以NULL分隔,最后一个文件名后面有一个额外的NULL字符。

从你的问题:

如果我检查szFileName变量,它只包含文件夹名称。

继续检查结束''之后的一个字符。

每次以下字符不是另一个''时,这是一个新文件名的开始。