首页 > 代码库 > 第一次用blog,这个blog好用吗?
第一次用blog,这个blog好用吗?
也许以后就主要在这里发SOUI的介绍了。
贴一段文件相关的helper, 测试一下贴代码是不是方便。
1 /** 2 * Copyright (C) 2014-2050 3 * All rights reserved. 4 * 5 * @file FileHelper.h 6 * @brief 7 * @version v1.0 8 * @author SOUI group 9 * @date 2014/08/0310 * 11 * Describe 实现两个文件相关的helper12 */13 14 #pragma once15 16 17 /**18 * BuildFilePath19 * @brief 递归创建子目录20 * @param LPCTSTR pszCurPath -- 创建路径的起始位置21 * @param LPCTSTR pszNewPath -- 新路径22 * @param BOOL bPath -- pszNewPath是一个路径标识23 * @return BOOL -- true创建成功24 * Describe pszNewPath指向一个文件名时,只创建文件路径部分25 */ 26 inline BOOL BuildFilePath(LPCTSTR pszCurPath,LPCTSTR pszNewPath,BOOL bPath=TRUE)27 {28 TCHAR szCurDir[MAX_PATH+1];29 GetCurrentDirectory(MAX_PATH,szCurDir);30 if(!SetCurrentDirectory(pszCurPath)) return FALSE;31 TCHAR szNewPath[MAX_PATH+1];32 _tcscpy_s(szNewPath,_countof(szNewPath),pszNewPath);33 if(bPath)34 {35 int nLen=_tcslen(szNewPath);36 if(szNewPath[nLen-1]!=_T(‘\\‘))37 _tcscat(szNewPath,_T("\\"));38 }39 LPTSTR pszPath=_tcschr(szNewPath,_T(‘\\‘));40 while(pszPath)41 {42 *pszPath=0;43 if(!CreateDirectory(szNewPath,NULL)) return FALSE;44 *pszPath=_T(‘\\‘);45 pszPath=_tcschr(pszPath+1,_T(‘\\‘));46 }47 SetCurrentDirectory(szCurDir);48 return TRUE;49 }50 51 class CFileDialogEx52 {53 public:54 55 OPENFILENAME m_ofn;56 BOOL m_bOpenFileDialog; // TRUE for file open, FALSE for file save57 TCHAR m_szFileTitle[_MAX_FNAME]; // contains file title after return58 TCHAR m_szFileName[_MAX_PATH]; // contains full path name after return59 60 CFileDialogEx(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs61 LPCTSTR lpszDefExt = NULL,62 LPCTSTR lpszFileName = NULL,63 DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,64 LPCTSTR lpszFilter = NULL,65 HWND hWndParent = NULL)66 {67 memset(&m_ofn, 0, sizeof(m_ofn)); // initialize structure to 0/NULL68 m_szFileName[0] = _T(‘\0‘);69 m_szFileTitle[0] = _T(‘\0‘);70 71 m_bOpenFileDialog = bOpenFileDialog;72 m_ofn.lStructSize = sizeof(m_ofn);73 m_ofn.lpstrFile = m_szFileName;74 m_ofn.nMaxFile = _MAX_PATH;75 m_ofn.lpstrDefExt = lpszDefExt;76 m_ofn.lpstrFileTitle = (LPTSTR)m_szFileTitle;77 m_ofn.nMaxFileTitle = _MAX_FNAME;78 m_ofn.Flags = dwFlags | OFN_EXPLORER | OFN_ENABLEHOOK | OFN_ENABLESIZING;79 m_ofn.lpstrFilter = lpszFilter;80 m_ofn.hwndOwner = hWndParent;81 82 // setup initial file name83 if(lpszFileName != NULL)84 _tcscpy_s(m_szFileName, _countof(m_szFileName), lpszFileName);85 }86 87 INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())88 {89 if(m_ofn.hwndOwner == NULL) // set only if not specified before90 m_ofn.hwndOwner = hWndParent;91 92 if(m_bOpenFileDialog)93 return ::GetOpenFileName(&m_ofn);94 else95 return ::GetSaveFileName(&m_ofn);96 }97 };
看上去还不错。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。