articleelement.h

来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C头文件 代码 · 共 84 行

H
84
字号
// ArticleElement.h: interface for the CArticleElement class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ARTICLEELEMENT_H__C04F96EE_E338_494E_857E_E3512B055373__INCLUDED_)
#define AFX_ARTICLEELEMENT_H__C04F96EE_E338_494E_857E_E3512B055373__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//文章的一个元素,虚基类,不能直接使用,只能被继承
class  DLL_BASEDATA_EXT_CLASS  CArticleElement  
{
public:
	//得到这个元素的长度(当前BBS的格式)
	virtual int GetCurBBSFormatTextLength() = 0 ;
	//得到这个元素的内容(当前BBS的格式),如果长度超过nMaxCharCount,则进行压缩.如果压缩失败,则返回空串
	virtual CString GetTextWithCurBBSFormat(int nMaxCharCount) = 0 ;
	//得到这个元素的内容(当前BBS的格式)
	virtual CString GetTextWithHtmlLink() = 0 ;
	CArticleElement();
	virtual ~CArticleElement();
};

//纯文本元素
class  DLL_BASEDATA_EXT_CLASS CArticleTextElement
{
public:	 
	virtual int GetCurBBSFormatTextLength();
	virtual CString GetTextWithCurBBSFormat(int nMaxCharCount);
	virtual CString GetTextWithHtmlLink();
	CArticleTextElement();
	virtual ~CArticleTextElement();

	CArticleTextElement(CString strContent);

private:
	CString m_strText ;
};

//链接元素,由文字和Url(网络地址)组成
class DLL_BASEDATA_EXT_CLASS  CArticleLinkElement
{
	CString m_strText ;
	CString m_strUrl ;
public:
	virtual int GetCurBBSFormatTextLength();
	virtual CString GetTextWithCurBBSFormat(int nMaxCharCount);
	virtual CString GetTextWithHtmlLink();
	
	CArticleLinkElement();
	virtual ~CArticleLinkElement();	

	CArticleLinkElement(CString strText,CString strUrl);
	CArticleLinkElement(CString strContent);	

};

//文章元素的管理类
class  DLL_BASEDATA_EXT_CLASS CArticleElements
{
public:
	//根据HTML格式,将所有的文章元素连成串
	CString MakeTextWithHtmlLink();
	//根据当前BBS格式,将所有的文章元素连成串
	CString MakeTextWithCurBBSFormat();
	//根据当前BBS格式,将所有的文章元素连成串
	//nEleMaxCharCount一个元素的最大字符数,nCharAPage一页的最大字符,arTexts(出参)每个字符串对应一页内容
	bool MakeTextWithCurBBSFormat(int  nEleMaxCharCount,int nCharAPage,CStringArray& arTexts);

	void Empty();//释放内存
	//增加一个链接类的元素
	bool AddLink(CString strText,CString strUrl);
	CArticleElements& operator +=(CString strContent);//从字符串中读取文章元素,并将这些元素加到自身中
	CArticleElements& operator =(CString strContent);//从字符串中读取文章元素,并用这些元素替换原有的元素

	CArticleElements();
	~CArticleElements();
private:
	CArray<CArticleElement*,CArticleElement*>  m_arArticleElements ;//文章元素的集合
};
#endif // !defined(AFX_ARTICLEELEMENT_H__C04F96EE_E338_494E_857E_E3512B055373__INCLUDED_)

⌨️ 快捷键说明

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