vc打开文件夹浏览框显示指定位置

来源:互联网 发布:武汉花山镇软件城 编辑:程序博客网 时间:2024/05/18 18:55
.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);
    }
http://blog.pfan.cn/cuzn/3402.html
原创粉丝点击