路径选择对话框:
LPITEMIDLIST pidl;
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(bi));
bi.hwndOwner = hwndDlg;
bi.pszDisplayName = szDisplayName;
bi.lpszTitle = TEXT("Select folder");
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_VALIDATE;
bi.lpfn = BrowseCallbackProc;
bi.pidlRoot = 0;
//set default path for source file
TCHAR szPathName[MAX_PATH] = {0};
GetModuleFileName(NULL, szPathName, MAX_PATH);
LPTSTR lpEnd = MStrEnd(szPathName);
while(*lpEnd != _T('//'))
{
*lpEnd = 0;
--lpEnd;
}
bi.lParam = (LPARAM)szPathName;
pidl = SHBrowseForFolder(&bi);
if(pidl)
{
SHGetPathFromIDList(pidl, szDisplayName);
Edit_SetText( ::GetDlgItem(hwndDlg, IDC_EDITSRCPATH), szDisplayName );
}
文件选择对话框:
//OPENFILENAME ofn ;
//Initialize the OPENFILENAME property
ofn.lStructSize = sizeof (OPENFILENAME) ;
ofn.hwndOwner = hwndDlg ;
ofn.hInstance = NULL ;
ofn.lpstrFilter = _T("Dat Files (*.DAT)/0*.dat/0");
ofn.lpstrCustomFilter = NULL ;
ofn.nMaxCustFilter = 0 ;
ofn.nFilterIndex = 0 ;
ofn.lpstrFile = szSelPath ;
ofn.nMaxFile = MAX_PATH ;
ofn.lpstrFileTitle = szTitleName ;
ofn.nMaxFileTitle = MAX_PATH ;
ofn.lpstrInitialDir = NULL ;
ofn.lpstrTitle = NULL ;
ofn.Flags = 0 ;
ofn.nFileOffset = 0 ;
ofn.nFileExtension = 0 ;
ofn.lpstrDefExt = TEXT ("dat") ;
ofn.lCustData = 0 ;
ofn.lpfnHook = NULL ;
ofn.lpTemplateName = NULL ;
if (!GetOpenFileName (&ofn))
{
return ;
}