1. 文件路径
CFileDialog dlg(TRUE,L"avi",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,L"(*.avi;*.mp4;*.wmv;*.asm)|*.avi;*.mp4;*.wmv;*.asm||");
if (dlg.DoModal() == IDOK)
{
CString str_path = dlg.GetPathName();
((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowTextW(str_path);
}
2. 文件夹路径
static int CALLBACK BrowseCallbackProc(HWND hWnd,UINT uMsg,LPARAM,LPARAM lpData)
{
if (uMsg == BFFM_INITIALIZED)
{
CTreeCtrl treePath;
HTREEITEM hItemSel;
::SendMessage(hWnd,BFFM_SETSELECTION,TRUE,lpData);
treePath.SubclassWindow(::GetDlgItem(hWnd,0x3741));
hItemSel = treePath.GetSelectedItem();
treePath.Expand(hItemSel,TVE_COLLAPSE);
treePath.UnsubclassWindow();
}
return 0;
}
void main()
{
BROWSEINFO bi;
TCHAR szPath[MAX_PATH] = L"C:\\job"; //默认路径
LPITEMIDLIST pList = NULL;
//ZeroMemory(szPath,MAX_PATH);
//获取当前路径
//GetDlgItemText(uid,szPath,MAX_PATH);
// 配置路径对话框
memset(&bi,sizeof(BROWSEINFO));
bi.hwndOwner = m_hWnd;
bi.pidlRoot = pList;
bi.pszDisplayName = szPath;
bi.lpszTitle = L"选择路径";
bi.ulFlags = BIF_EDITBOX;
bi.lpfn = BrowseCallbackProc;
bi.lParam = (LPARAM)szPath;
bi.iImage = 0;
//弹出选择目录对话框
if ((pList = SHBrowseForFolder(&bi)) != NULL)
{
if (SHGetPathFromIDList(pList,szPath))
{
((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowTextW(szPath);
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。