map<int, string> TgaName;
OPENFILENAMEA ofn;
memset(&ofn,0,sizeof(OPENFILENAME));
memset(strFile,0,sizeof(char)*MAX_PATH);
ofn.lStructSize=sizeof(OPENFILENAME);
ofn.lpstrFilter="tga image\0*.tga;\0";
ofn.lpstrFile=strFile;
ofn.nMaxFile=MAX_PATH;
ofn.Flags=OFN_FILEMUSTEXIST|OFN_ALLOWMULTISELECT|OFN_EXPLORER;
if(GetOpenFileNameA(&ofn) == TRUE)//strFile得到用户所选择文件的路径和文件名
{
char szPath[MAX_PATH];
char* p;
int nLen = 0;
lstrcpyn(szPath, strFile, ofn.nFileOffset );
szPath[ ofn.nFileOffset ] = '\0';
nLen = lstrlen(szPath);
if( szPath[nLen-1] != '\\' )
{
lstrcat(szPath, TEXT("\\"));
}
int i = 0;
p = strFile + ofn.nFileOffset;
while( *p)
{
string fullPath(szPath);
fullPath.append(p);
TgaName.insert( make_pair(i++,fullPath) );
p += lstrlen(p) +1;//位移到下个文件
}
}
//迭代器获取
map<int, string>::iterator tName;
for(tName = TgaName.begin(); tName!=TgaName.end();++tName)
{
string TGAFile = tName->second;
char TGAFileName[MAX_PATH];
strcpy(TGAFileName,TGAFile.c_str());
//…………
}