【问题标题】:open path folder don't click main window mfc打开路径文件夹不要单击主窗口 mfc
【发布时间】:2014-06-13 09:06:56
【问题描述】:

我使用 mfc 打开保存路径,我想点击打开保存路径不允许点击主窗口,我的代码打开保存路径:

void CFTPDlg::OnBnClickedButtonSave()
{
    BROWSEINFO   bi; 
    ZeroMemory(&bi,   sizeof(bi)); 
    TCHAR   szDisplayName[MAX_PATH]; 
    szDisplayName[0]    =   ' ';  

    bi.hwndOwner        =   NULL; 
    bi.pidlRoot         =   NULL; 
    bi.pszDisplayName   =   szDisplayName; 
    bi.lpszTitle        =   _T("Please select a folder for storing received files :"); 
    bi.ulFlags          =   BIF_RETURNONLYFSDIRS;
    bi.lParam           =   NULL; 
    bi.iImage           =   0;  


    LPITEMIDLIST   pidl   =   SHBrowseForFolder(&bi);

    TCHAR   szPathName[MAX_PATH]; 
    if   (NULL   !=   pidl)
    {
         BOOL bRet = SHGetPathFromIDList(pidl,szPathName);
         if(FALSE == bRet)
              return;
         //AfxMessageBox(szPathName);
         m_editSave = szPathName;
         ((CEdit*)GetDlgItem(IDC_EDIT_SAVE))->SetWindowText(szPathName);
    }
}

非常感谢

【问题讨论】:

    标签: mfc


    【解决方案1】:

    将所有者窗口正确设置为您的主窗口。否则模式对话框无法禁用您的窗口。

    【讨论】:

    • 对不起,我不明白,如何在打开对话框保存时不允许点击主窗口?
    • 浏览器选择窗口会在您提供句柄时禁用您的窗口。您将 bi.hwndOwner 设置为 NULL。在此处使用您的主窗口句柄。可能阅读一些 Windows 基础知识也会有所帮助。
    • 感谢我有解决方案,即 bi.hwndOwner = m_hWnd;
    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    相关资源
    最近更新 更多