在我的一个属性页上,我有两个CMFCEditBrowseCtrl对象。
其中一个用于选择计算机上的本地文件夹。因此,我在OnInitDialog中使用了以下样式
m_BrowseLocalBackupFolder.EnableFolderBrowseButton(nullptr, BIF_NEWDIALOGSTYLE);浏览文件夹时弹出的窗口如下所示:

我的另一个控件使用我自己的类CRemoteFTPFolderSelect,该类是从CMFCEditBrowseCtrl派生的。这是因为我需要通过FTP显示远程文件夹列表。我通过我的C#动态链接库包装器使用FluentFTP来实现这一点。我的OnBrowse方法:
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();
}
}我不得不使用我自己的对话框资源,目前它看起来是这样的:

目前,我创建的图像列表如下:
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)浏览窗口使用的图标类似的图标?
发布于 2020-05-17 21:32:29
您需要使用SetWindowTheme接口更改树形视图的主题:
为了将其设置为类似于"Explorer“的视图,请使用以下代码:
SetWindowTheme(hwndTreeView, L"Explorer", NULL);https://stackoverflow.com/questions/61839502
复制相似问题