VC弹出“选择文件夹”对话框的程序的编写

    技术2022-05-12  0

    VC弹出“选择文件夹”对话框的程序的编写 (2009-06-25 20:21:26) <script> var $tag='it'; var $tag_code='4e108387259534ce8df699b26c709296'; </script> 标签:it   分类:一技长

        在实际的MFC编程当中,常常需要弹出对话框选择文件、选择目录等操作,对于选择文件,用CFileDialog就可以很简单的解决,而对于选择目录,则稍稍需要多一些步骤,需要自己创建Dialog。

        首先创建如下的对话框,并为它创建类Dialog,在Dialog头文件中添加保存目录名的变量CString m_strPath,然后为编辑框右边的按钮添加消息响应函数OnButtonBrowser(),并添加如下代码。

     

     

    void CDialog::OnButtonBrowser()

    {

           // TODO: Add your control notification handler code here

           UpdateData(TRUE);

           char szDir[MAX_PATH];

           BROWSEINFO bi;

           ITEMIDLIST *pidl;

           bi.hwndOwner = this->m_hWnd;

           bi.pidlRoot = NULL;

           bi.pszDisplayName = szDir;

           bi.lpszTitle = "请选择目录";

           bi.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI | BIF_RETURNONLYFSDIRS;

           bi.lpfn = NULL;

           bi.lParam = 0;

           bi.iImage = 0;

           pidl = SHBrowseForFolder(&bi);

           if(pidl == NULL)  return;

           if(!SHGetPathFromIDList(pidl, szDir))   return;

           else  m_strPath = szDir;

           UpdateData(FALSE);    

    }

        关于结构体BROWSEINFO 和ITEMIDLIST ,可以查阅MSDN,里面有很详细的解释。

        当程序启动起来的时候,点击按钮,就会弹出如下的选择目录的对话框


    最新回复(0)