.h下面
private:
static int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData);
.cpp下面
回调函数
int CALLBACK CSystemSetDlg::BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
if(uMsg==BFFM_SELCHANGED||uMsg==BFFM_INITIALIZED)
{
if(uMsg==BFFM_INITIALIZED)
{
::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,
LPARAM(lpData));
}
}
return 0;
}
文件夹浏览框
BROWSEINFO bi={0};
bi.hwndOwner = this->GetSafeHwnd();
bi.pidlRoot = NULL;
bi.lpszTitle = _T("请选择打开路径");
bi.ulFlags = BIF_RETURNONLYFSDIRS|BIF_EDITBOX;
bi.lpfn = BrowseCallbackProc;
bi.lParam = (LPARAM)m_strPath.GetBuffer(m_strPath.GetLength());
LPITEMIDLIST pIdl;
if((pIdl = SHBrowseForFolder(&bi)) != NULL)
{
TCHAR path[MAX_PATH];
SHGetPathFromIDList(pIdl,path);
m_strTemplateInfoPath = path;
m_ctrTemplatePath.SetWindowText(m_strPath);
}
private:
static int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData);
.cpp下面
回调函数
int CALLBACK CSystemSetDlg::BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
if(uMsg==BFFM_SELCHANGED||uMsg==BFFM_INITIALIZED)
{
if(uMsg==BFFM_INITIALIZED)
{
::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,
LPARAM(lpData));
}
}
return 0;
}
文件夹浏览框
BROWSEINFO bi={0};
bi.hwndOwner = this->GetSafeHwnd();
bi.pidlRoot = NULL;
bi.lpszTitle = _T("请选择打开路径");
bi.ulFlags = BIF_RETURNONLYFSDIRS|BIF_EDITBOX;
bi.lpfn = BrowseCallbackProc;
bi.lParam = (LPARAM)m_strPath.GetBuffer(m_strPath.GetLength());
LPITEMIDLIST pIdl;
if((pIdl = SHBrowseForFolder(&bi)) != NULL)
{
TCHAR path[MAX_PATH];
SHGetPathFromIDList(pIdl,path);
m_strTemplateInfoPath = path;
m_ctrTemplatePath.SetWindowText(m_strPath);
}