#include<shlobj.h>
#include<TCHAR.h>
#include<windows.h>
int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)
{
if(uMsg == BFFM_INITIALIZED)
{
SendMessage(hwnd, BFFM_SETSELECTION,
TRUE,(LPARAM)_T("E:\\"));
}
return 0;
}
void CPOIIMAGECheckDialogDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
TCHAR m_dir[500];
BROWSEINFO bi = {0};
bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_RETURNONLYFSDIRS|BIF_VALIDATE;
bi.lpszTitle = _T("请选择保存计算结果文件的位置");
bi.lpfn = BrowseCallbackProc; //指定回调函数地址
ITEMIDLIST *pIDL = SHBrowseForFolder(&bi);
if(SHGetPathFromIDList(pIDL,m_dir) == TRUE) //变量m_dir中存储了经过用户选择后的目录的完整路径.
{
m_ctrlEdit3.SetWindowText(m_dir);
m_strResultFile=m_dir;
}
}
本文介绍了一个使用Windows API实现的文件夹选择对话框示例。通过C++代码展示了如何创建一个带有回调函数的文件夹浏览对话框,并将用户选择的文件夹路径显示在编辑框中。

被折叠的 条评论
为什么被折叠?



