在黑暗中举起探索的火炬的网志
在喧闹、混杂的生活中
你应该与你的心灵和平相处
尽管这世上有很多假冒和欺骗
有很多单调乏味的工作
和众多破灭的梦幻
它仍然是一个美好的世界
记住:你应该努力去追求幸福。
是的,记住:你应该努力去追求幸福。
每个早晨灿烂的太阳升起的时候,
每个人都应
-
2004-04-29
[原创] SHFolder - [VC开发专辑]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
#ifndef GLOBAL_H #define GLOBAL_H #ifndef BIF_NEWDIALOGSTYLE #define BIF_NEWDIALOGSTYLE 0x0040 #endif #ifndef BIF_USENEWUI #define BIF_USENEWUI 0x0050 #endif // 初始化文件夹设定用的回调函数 int CALLBACK _SHBrowseForFolderCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { if(uMsg == BFFM_INITIALIZED) ::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData); return 0; } bool g_fSelectFolderDlg(CString* lpstrFolder,CString strIniFolder,bool bAvailNewFolder) { bool ret; char lpszPath[MAX_PATH]; LPMALLOC lpMalloc; BROWSEINFO sInfo; LPITEMIDLIST lpidlRoot; LPITEMIDLIST lpidlBrowse; if(lpstrFolder == NULL) return false; if(::SHGetMalloc(&lpMalloc) != NOERROR) return false; ret = false; if(strIniFolder != "") { if(strIniFolder.Right(1) == "\\") strIniFolder = strIniFolder.Left(strIniFolder.GetLength() - 1); //删除末尾的"\\" } ::SHGetSpecialFolderLocation(NULL, CSIDL_DRIVES, &lpidlRoot); //取得选定的文件夹名 ::ZeroMemory(&sInfo, sizeof(BROWSEINFO)); sInfo.pidlRoot = lpidlRoot; sInfo.pszDisplayName = lpszPath; sInfo.lpszTitle = _T("僼僅儖僟偺慖戰"); sInfo.ulFlags = BIF_RETURNONLYFSDIRS; if(bAvailNewFolder == true) sInfo.ulFlags |= BIF_EDITBOX | BIF_NEWDIALOGSTYLE | BIF_USENEWUI; sInfo.lpfn = _SHBrowseForFolderCallbackProc; sInfo.lParam = (LPARAM)strIniFolder.GetBuffer(0); lpidlBrowse = ::SHBrowseForFolder(&sInfo); //显示文件夹选择对话框 if(lpidlBrowse != NULL) { if(::SHGetPathFromIDList(lpidlBrowse,lpszPath)) //取得文件夹名 { *lpstrFolder = ""; *lpstrFolder = lpszPath; if(*lpstrFolder != "") { if(lpstrFolder->Right(1) != "\\") *lpstrFolder += "\\"; //在末尾时附加"\\" } } ret = true; } if(lpidlBrowse != NULL) ::CoTaskMemFree(lpidlBrowse); if(lpidlRoot != NULL) ::CoTaskMemFree(lpidlRoot); lpMalloc->Release(); return ret; } #endif void CSHFolderDlg::OnClick_SHBrowseForFolder() { if(g_fSelectFolderDlg(&m_strFolder,m_strFolder,false)) { UpdateData(false); } }
http://junglesong.yourblog.org/logs/163419.html
随机文章:
[转载] Visual C++ 编程问答(二) 2004-04-29[原创] CAutoCompleteCombo 2004-04-29[转贴] 学好VC++的十大良好习惯 2004-04-09[转载] 使用VC6.0实现窗口的任意分割 作者:张中庆 2004-03-25VC编程规范(转载+编辑) 2004-02-11
收藏到:Del.icio.us





