TCHAR buffer[_MAX_PATH];
GetModuleFileName(NULL, buffer, sizeof(buffer));
CString defpath(buffer);
defpath += _T("param\\");
DWORD flags = OFN_HIDEREADONLY;
LPCTSTR szFilter = _T("参数 (*.pa)|*.pa|所有文件 (*.*)|*.*|");
CFileDialog SelectFile(TRUE, _T(".pa"), defpath, flags, szFilter);
//SelectFile.GetOFN().lpstrInitialDir = (LPCTSTR)defpath;
if(SelectFile.DoModal() == IDOK) {
strGetFileName = SelectFile.GetPathName();
}
else {
return FALSE;//user cancelled
}
以上代码在win7下正常;在xp下打开时,窗口一闪即逝。
经反复尝试,发现原因在于defpath不能以 \ 结尾,改为
defpath += _T("param\\*");
就ok