Zdravím,
potřeboval bych v programu povolit uživateli označit a otevřít více souborů najednou pomocí "GetOpenFileName()" funkce s "OFN_ALLOWMULTISELECT" stylem. Dialogové okno pro výběr výce souborů funguje a do struktury se klasicky zapíše cesta k souboru. Ale když uživatel vybere více než jeden soubor, tak se do struktury zapíše pouze cesta ke všem souborům, ale už se tam nezapíšou názvy souborů samotných. Podle MSDN se tam zapisují a jsou oddělené "extra nulovým znakem". Neúspěšně jsem se pokoušel vydlabat z té struktury názvy všech souborů vybraných uživatelem, ale vždy se mi povedlo vydlabat pouze jeden název souboru. Moc bych si cenil jakékoliv rady.
OPENFILENAME ofn;
char aFileDirectory[1024];
ZeroMemory(aFileDirectory, 1024);
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = "OBJ files \0*.obj*\0 All Files \0*.*\0";
ofn.lpstrFile = aFileDirectory;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;
ofn.lpstrDefExt = "obj";
if (GetOpenFileName(&ofn))
{
InvalidateRect(hwnd, NULL, TRUE);
SendMessage(text1, WM_SETTEXT, 1, (LPARAM)aFileDirectory);
FILE *stream = fopen("C:\\Users/Proxicts/Desktop/output.txt", "wt");
fprintf(stream, "Path= %s", &aFileDirectory[ofn.nFileOffset]);
fclose(stream);
}
Předem díky.