我在一个按纽的CLICK事件里想用次函数来掉用选择目录的对话框;
如果不通过程序控制,如何改变BROWSEINFO结构体的属性来控制对话框只弹出一次呢?谢谢了!

解决方案 »

  1.   

    CString strPath;
    BROWSEINFO bInfo;
    LPITEMIDLIST pidl;
    ZeroMemory ( (PVOID) &bInfo,sizeof (BROWSEINFO));bInfo.hwndOwner = this->m_hWnd;
    bInfo.pszDisplayName = strPath.GetBuffer (MAX_PATH);
    bInfo.lpszTitle = "";
    bInfo.ulFlags = BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS;
    bInfo.lpfn = NULL;
    bInfo.lParam = 0;if ((pidl = ::SHBrowseForFolder(&bInfo)) == NULL)
        return;
    char temp[MAX_PATH];
    if (::SHGetPathFromIDList(pidl,temp) == FALSE)
        return;
    strPath.Format(temp);
    AfxMessageBox(strPath);
      

  2.   

    把bInfo.hwndOwner这项设为this->m_hWnd;
      

  3.   

    哈哈,谢谢了,我也找到了这个问题,实际上如果默认为NULL的话,父窗口为桌面!还是谢谢了!