MFC(VC)中实现一次选中多个文件(夹) 转载

常见的选中文件方法使用explorer.exe +"select,C:\\1.txt" 选中文件。但是,多次选择会创建多个explorer进程,打开多个窗口(即使是同级目录)。

使用SHOpenFolderAndSelectItems可以使用默认的explorer完成该操作;且多次打开同一目录选中文件,只会显示一个文件夹窗口。代码如下

void CSelectItemDlg::OnBnClickedButton1()//一个按钮响应函数
{
// TODO: 在此添加控件通知处理程序代码
LPSHELLFOLDER pDesktopFolder;
if(SUCCEEDED(SHGetDesktopFolder(&pDesktopFolder)))
{
LPITEMIDLIST      pIDList;
LPITEMIDLIST      pidl[2];
ULONG             chEaten;
ULONG             dwAttributes;
HRESULT           hr;
TCHAR* m_strFilePath = _T("D:\\MTV\\1.mkv");
hr = pDesktopFolder->ParseDisplayName(
NULL, NULL, m_strFilePath, &chEaten, &pidl[0], &dwAttributes);
//设置第二个要选中的东西
m_strFilePath = _T("D:\\MTV\\2.mkv");
hr = pDesktopFolder->ParseDisplayName(NULL,
NULL,
m_strFilePath,
&chEaten,
&pidl[1],
&dwAttributes);
m_strFilePath = _T("D:\\MTV");
hr = pDesktopFolder->ParseDisplayName(NULL,
NULL,
m_strFilePath,
&chEaten,
&pIDList,
&dwAttributes);
if (FAILED(hr))
{
pDesktopFolder->Release();
return ;
}
CoInitialize(NULL);
SHOpenFolderAndSelectItems(pIDList, 2, (LPCITEMIDLIST *)pidl, 0);
}
}


原网址: http://hi.baidu.com/wangxu198709/item/f585e0db9b5be33de2108f60



阅读更多
个人分类: win API
下一篇清除Radio警告 Warning: skipping non-radio button in group
想对作者说点什么? 我来说一句

一次选择多个文件进行批量上传

2015年01月06日 116KB 下载

没有更多推荐了,返回首页

关闭
关闭