首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们是否可以访问BIF_NEWDIALOGSTYLE浏览窗口使用的图标?

我们是否可以访问BIF_NEWDIALOGSTYLE浏览窗口使用的图标?
EN

Stack Overflow用户
提问于 2020-05-16 23:51:37
回答 1查看 60关注 0票数 2

在我的一个属性页上,我有两个CMFCEditBrowseCtrl对象。

其中一个用于选择计算机上的本地文件夹。因此,我在OnInitDialog中使用了以下样式

代码语言:javascript
复制
m_BrowseLocalBackupFolder.EnableFolderBrowseButton(nullptr, BIF_NEWDIALOGSTYLE);

浏览文件夹时弹出的窗口如下所示:

我的另一个控件使用我自己的类CRemoteFTPFolderSelect,该类是从CMFCEditBrowseCtrl派生的。这是因为我需要通过FTP显示远程文件夹列表。我通过我的C#动态链接库包装器使用FluentFTP来实现这一点。我的OnBrowse方法:

代码语言:javascript
复制
void CRemoteFTPFolderSelect::OnBrowse()
{
    if (theApp.MSAToolsInterface().ConnectToFTP(m_strHostname, m_strUsername, m_strPassword))
    {
        CBrowseFolderFTP dlgBrowse(this);
        CString strRemoteBackupFolder;

        GetWindowText(strRemoteBackupFolder);

        if (strRemoteBackupFolder != _T(""))
            dlgBrowse.SetSelectedFolder(strRemoteBackupFolder);

        if (dlgBrowse.DoModal() == IDOK)
        {
            dlgBrowse.GetSelectedFolder(strRemoteBackupFolder);
            SetWindowText(strRemoteBackupFolder);

            CMFCPropertyPage* pParent = (CMFCPropertyPage*)GetParent();
            if (pParent)
            {
                CWnd* pWnd = pParent->GetDlgItem(IDC_BUTTON_APPLY);
                if (pWnd != nullptr)
                    pWnd->EnableWindow(TRUE);
            }
        }

        theApp.MSAToolsInterface().DisconnectFromFTP();
    }
}

我不得不使用我自己的对话框资源,目前它看起来是这样的:

目前,我创建的图像列表如下:

代码语言:javascript
复制
SHGetFileInfo( 
    _T("Doesn't matter"), 
    FILE_ATTRIBUTE_DIRECTORY, 
    &sfi, sizeof sfi, 
    SHGFI_ICON | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES); 
m_imgList.Add(sfi.hIcon);

SHGetFileInfo( 
    _T("Doesn't matter"), 
    FILE_ATTRIBUTE_DIRECTORY, 
    &sfi, sizeof sfi, 
    SHGFI_ICON | SHGFI_OPENICON | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES); 
m_imgList.Add(sfi.hIcon);

m_treeFTP.SetImageList(&m_imgList, TVSIL_NORMAL );

是否有可能获得与+/-图像的m_BrowseLocalBackupFolder.EnableFolderBrowseButton(nullptr, BIF_NEWDIALOGSTYLE)浏览窗口使用的图标类似的图标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-17 21:32:29

您需要使用SetWindowTheme接口更改树形视图的主题:

为了将其设置为类似于"Explorer“的视图,请使用以下代码:

代码语言:javascript
复制
SetWindowTheme(hwndTreeView, L"Explorer", NULL);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61839502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档