如何在“打开文件”对话框中隐藏特定控件? (使用CFileDialog创建的对话框)

时间:2018-07-11 05:42:11

标签: c++ visual-c++ mfc

下面是我用来创建“文件打开对话框”的代码。效果很好,代码中没有问题,但是出于某种原因,我希望隐藏视图控件的更改(我在附件中高亮显示了该内容)

    CString strFilter = _T(".mp3");
    CFileDialog fileDialog(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT |
        OFN_HIDEREADONLY | OFN_LONGNAMES, strFilter, NULL, 0, TRUE);
    CString szStrTitle = _T("Select the file");
    fileDialog.m_ofn.lpstrTitle = szStrTitle;
    TCHAR *filenameBuffer = new TCHAR[4000 * 1000];
    filenameBuffer[0] = 0;
    fileDialog.m_ofn.lpstrFile = filenameBuffer;
    fileDialog.m_ofn.nMaxFile = 4000 * 1000;
    fileDialog.DoModal();

作为新手,在提问时可能会犯一些愚蠢的错误,请忽略它们,并请您帮助实现期望的结果 谢谢。File-Open

1 个答案:

答案 0 :(得分:3)

如今,自定义通用文件对话框的正确方法是使用IFileDialogCustomize。该界面在https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifiledialogcustomize

中有完整记录

对于您的特定情况,您需要使用IFileDialogCustomize::RemoveControlItem()

您还可以使用IFileDialogCustomize::SetControlItemState()来隐藏目标控件。