VC++下怎样选择一个路径,是用OpenDialog对话框吗? VC++下怎样选择一个路径,是用OpenDialog对话框吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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 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 ); } }} BOOL CNetSniperView::BrowseFolder(CString &sFolderPath, CString sTitle){ BROWSEINFO bi; char Buffer[_MAX_PATH]; //初始化入口参数 bi.hwndOwner=NULL; bi.pidlRoot=NULL; bi.pszDisplayName=Buffer; bi.lpszTitle=sTitle; bi.ulFlags=0; bi.lpfn=NULL; LPITEMIDLIST pIDList=SHBrowseForFolder(&bi); //用户取消操作 if(!pIDList) return FALSE; SHGetPathFromIDList(pIDList,Buffer); sFolderPath = Buffer; LPMALLOC lpMalloc; if(FAILED(SHGetMalloc(&lpMalloc))) return false; lpMalloc->Free(pIDList); lpMalloc->Release(); return TRUE;} 实时视频处理算法 动态的添加文件中的bmp文件到程序资源中,而且可以获得资源ID 请教关于vc 通过ado连接 oracle的问题 waveOutOpen如何实现循环播放有人知道吗? 关于EditBox编辑框控件的输入问题 Excel的一个OLE编程难题!!! 很久不来CSDN,今天泡了半天VC版,竟然就看到倒分贴了 窗口上的控件隐藏是什么代码? 谁知道哪能找到usb口的通信协议 深入浅出MFC第九章! 请教一个简单问题(急)100分 关于directx例程里的amcap
{
_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 );
}
}
}
{
BROWSEINFO bi;
char Buffer[_MAX_PATH];
//初始化入口参数
bi.hwndOwner=NULL;
bi.pidlRoot=NULL;
bi.pszDisplayName=Buffer;
bi.lpszTitle=sTitle;
bi.ulFlags=0;
bi.lpfn=NULL;
LPITEMIDLIST pIDList=SHBrowseForFolder(&bi);
//用户取消操作
if(!pIDList)
return FALSE;
SHGetPathFromIDList(pIDList,Buffer);
sFolderPath = Buffer;
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc)))
return false;
lpMalloc->Free(pIDList);
lpMalloc->Release(); return TRUE;
}