在MFC中有没有已经做好的对话框, 象CFileDialog一一样. 但只显示文件夹,返回文件夹路径,不显示文件?
解决方案 »
- 用Tab Control 如何实现主窗体和其他窗体的切换?
- 呼叫高手、斑竹、等,咨询下,EnumChildWindows是不是罗列顶层窗口下的所有子窗口,包括控件
- vc为什么不能读注册表中odbc的PWD键值?
- 怎么用vc开发一个asp的模版?
- 200分求助,以MainFrame做父窗口的Dailaog,收不到鼠标消息?在线等待!
- 怎样把一个很大很大的长整数转化为CString类型来存储
- 怪异的MessageBox(...)函数!!!!!!!!!!!!!
- 为什么我的程序运行时提示创建控文档失败,然后就退出程序?
- 光驱的盘符还在,但老是提示"无法打开g:,设备尚未准备好."?是不是光躯坏了??
- 能不能说说此函数的形参,谢了!!!!
- 怎样打开JPEG的图片?
- 编译时,出现错误:fatal error C1083: Cannot open precompiled header file: 'Debug/People.pch': No such file or directory
谁来说说吧
CWnd *pWnd =GetDlgItem(IDD_SETPATHBOX);
pWnd->EnableWindow (FALSE);
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(bi)); TCHAR szDisplayName[MAX_PATH];
TCHAR m_szSelected[MAX_PATH];
szDisplayName[0] = '\0';
m_szSelected[0] = '\0'; HWND ho=pWnd->Detach();
bi.hwndOwner =ho;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDisplayName;
bi.lpszTitle = TEXT("选择要操作的文件夹");
bi.ulFlags = BIF_EDITBOX | BIF_VALIDATE ;//不显示EDITBOX
bi.lParam = NULL;
bi.iImage = 0;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
我高了这么一段代码,但是非法操作,救救我啊
如果把bi.hwndOwner 赋NULL则是非模式对话框,怎么解决?
LPMALLOC pMalloc;
SHGetMalloc(&pMalloc);BROWSEINFO bi;
int i = 0;
LPITEMIDLIST pidlBrowse; // PIDL selected by user memset(lpBuffer, 0, sizeof(lpBuffer));
memset(buf, 0, sizeof(buf));
// Fill in the BROWSEINFO structure.
bi.hwndOwner = m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = lpBuffer;
bi.lpszTitle = "选择HTML文件存放的目录";
bi.ulFlags = 0;
bi.lpfn = NULL;
bi.lParam = 0;
// Browse for a folder and return its PIDL.
pidlBrowse = SHBrowseForFolder(&bi);
if (pidlBrowse != NULL)
{
// Show the display name, title, and file system path.
if (SHGetPathFromIDList(pidlBrowse, lpBuffer))
//you got the path here // Free the PIDL returned by SHBrowseForFolder.
pMalloc->Free(pidlBrowse);}
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 CDlgOptionCapture::OnPathOpen()
{
// 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 );
}
}
}
QQ:59377629
[email protected]