pages.h

来自「这是一个能够自动生成文档的程序」· C头文件 代码 · 共 57 行

H
57
字号
#ifndef __PAGESMANAGER_H__
#pragma once

#include <afxtempl.h>
#include "Page.h"

typedef CList<CString*, CString*> CStringPtrList;

//管理代码文件集合
class CPages  
{
public:
	//构造函数
	CPages();
	//析构函数
	virtual ~CPages();

public:
	//加入工程的一个目录
	BOOL AddUserDir(LPCTSTR iDir);
	//加入开发环境或语言类库的目录
	BOOL AddLibDir(LPCTSTR iDir);
	//删除工程的一个目录
	void DeleteUserDir(LPCTSTR iDir);
	//删除开发环境或语言类库的目录
	void DeleteLibDir(LPCTSTR iDir);
	//取得工程的第一个目录的POSITION
	POSITION GetFirstUserDirPosition() {return mUserDirs.GetHeadPosition();};
	//取得工程的下一个目录字符串
	CString* GetNextuserDir(POSITION& ioPos) { return mUserDirs.GetNext(ioPos); };
	
    //在工程目录及库目录中查找文件
	BOOL FindCodePage(CString& oPathName, LPCTSTR iFileName, BOOL iBeginOfUserDir=TRUE);
	//判断工程目录列表是否为空
	BOOL IsUserDirEmpty() {return mUserDirs.IsEmpty();};

	//根据文件路径查询代码页对象(不是磁盘文件,是指已解析的代码页对象)
	CPage* Search(LPCTSTR iPageName);
	//加入一个代码页对象
	CPage* AddPage(LPCTSTR iPathName);

private:
	//清除所有数据
	void ClearContent();
	//查找磁盘文件
    BOOL FindFile(CString& oPathName, const CString& iDirectory, 
			const CString& iFileName);

private:
	CStringPtrList  mUserDirs;   //用户目录列表
	CStringPtrList  mLibDirs;    //库目录列表
	CMapStringToPtr mPageMap;    //已解析的文件映射表

	UNIT_TEST(CPages)
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?