了解不了解的都过来帮忙,谢谢

HelloDan 2009-11-09 10:47:16
SHBrowseForFolder,使用这个函数时,发现在XP下一切都正常,但在windows 7下就会出现打开具体一个网络时发现没有反应。但我是有权限访问那个网络的,而且我在电脑里面用explorer直接点击是可以打开另外的网络的文件夹的。

 问题是我要怎样才能使我点击这个网络里,它能够展开而不是没有反应。

 不了解的帮顶吧。  谢谢!
...全文
127 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloDan 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hongya6088 的回复:]
C/C++ codeinlineint CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
_TCHAR szDir[_MAX_PATH];switch(uMsg)
{case BFFM_INITIALIZED:// 初始化break;case BFFM_SELCHANGED:// 路径改变if( SHGetPathFromIDList( (LPITEMIDLIST)lParam, szDir ) )
SendMessage( hwnd, BFFM_SETSTATUSTEXT,0, (LPARAM)szDir );break;default:break;
}return0;
}void CTeskDlg::OnGetOpenPath()
{// TODO: Add your control notification handler code here _TCHAR pszDisplayName[MAX_PATH];
BROWSEINFO bi;
LPITEMIDLIST lpID;// 设置参数 bi.hwndOwner= GetSafeHwnd();// Handle to the owner window bi.pidlRoot= NULL;// Location of root folder bi.pszDisplayName= pszDisplayName;// Folder name selected bi.lpszTitle= _T("选择路径");// Title name bi.ulFlags= BIF_RETURNONLYFSDIRS| BIF_STATUSTEXT;// Option flags bi.lpfn= BrowseCallbackProc;// Callback function bi.lParam=0;// LPARAM bi.iImage= NULL;// Image selected
lpID= SHBrowseForFolder(&bi );if( lpID!= NULL )
{if( SHGetPathFromIDList( lpID, pszDisplayName ) )
{
m_strPath= pszDisplayName;if( m_strPath[m_strPath.GetLength()-1]!='\\' )
m_strPath+= _T('\\');
UpdateData( FALSE );
}
}
}
[/Quote]

我所写的与你这一个是差不多的。但在XP里面可以用,在WIN7就不行了。
HelloDan 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tr0j4n 的回复:]
我是大三学生...
[/Quote]

喔。。。     我以为你跟那个Loden一样呢。。。。。


HelloDan 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 toperray 的回复:]
恩,帮你顶顶。

顺便问一句:
WIN7现在用的人这么多了?
[/Quote]

win7还是比较好有的,不过我会慢慢用习惯Ubuntu的了。
ToperRay 2009-11-09
  • 打赏
  • 举报
回复
恩,帮你顶顶。

顺便问一句:
WIN7现在用的人这么多了?
MoXiaoRab 2009-11-09
  • 打赏
  • 举报
回复
我是大三学生...
lang528 2009-11-09
  • 打赏
  • 举报
回复
up
hongya6088 2009-11-09
  • 打赏
  • 举报
回复
inline   int   CALLBACK   BrowseCallbackProc(HWND   hwnd,   UINT   uMsg,   LPARAM   lParam,   LPARAM   lpData)  
{
_TCHAR szDir[_MAX_PATH];

switch(uMsg)
{
case BFFM_INITIALIZED: // 初始化
break;

case BFFM_SELCHANGED: // 路径改变
if( SHGetPathFromIDList( (LPITEMIDLIST)lParam, szDir ) )
SendMessage( hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szDir );
break;

default:
break;
}

return 0;
}

void CTeskDlg::OnGetOpenPath()
{
// TODO: Add your control notification handler code here
_TCHAR pszDisplayName[MAX_PATH];
BROWSEINFO bi;
LPITEMIDLIST lpID;

// 设置参数
bi.hwndOwner = GetSafeHwnd(); // Handle to the owner window
bi.pidlRoot = NULL; // Location of root folder
bi.pszDisplayName = pszDisplayName; // Folder name selected
bi.lpszTitle = _T("选择路径"); // Title name
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT; // Option flags
bi.lpfn = BrowseCallbackProc; // Callback function
bi.lParam = 0; // LPARAM
bi.iImage = NULL; // Image selected

lpID = SHBrowseForFolder( &bi );
if( lpID != NULL )
{
if( SHGetPathFromIDList( lpID, pszDisplayName ) )
{
m_strPath = pszDisplayName;
if( m_strPath[m_strPath.GetLength() - 1] != '\\' )
m_strPath += _T('\\');
UpdateData( FALSE );
}
}
}
xwsn007 2009-11-09
  • 打赏
  • 举报
回复
顶一个
HelloDan 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tr0j4n 的回复:]
我下午帮你看下,早上在上课,不能碰到我自己的电脑
[/Quote]

非常感谢!   原来这么多老师的!
MoXiaoRab 2009-11-09
  • 打赏
  • 举报
回复
我下午帮你看下,早上在上课,不能碰到我自己的电脑
幸福官 2009-11-09
  • 打赏
  • 举报
回复
这个真不了解,帮顶
nipk2009 2009-11-09
  • 打赏
  • 举报
回复
up
yuhudie203 2009-11-09
  • 打赏
  • 举报
回复
up

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧