⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 txtmsgset.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
// TxtMsgSet.cpp: implementation of the CTxtMsgSet class.
//
//////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include "windows.h"
#include "TxtMsgSet.h"

// const
const int _MAX_TXTMSGSIZE	=256;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CTxtMsgSet::CTxtMsgSet()
{
	m_dwMaxMsg	=32;	// default max msg is 32 
	m_dwMsgTake	=0;
	this->ClearMsg();
}

CTxtMsgSet::~CTxtMsgSet(void)
{
	this->ClearMsg();
}

//--------------------------------------------------------------
BOOL CTxtMsgSet::AddMsg(const char* pszMsg)
{
	if(!pszMsg || _MAX_TXTMSGSIZE <= strlen(pszMsg))
		return false;

	char* pszNewMsg	=new char[_MAX_TXTMSGSIZE];
	if(!pszNewMsg)
		return false;
	strcpy(pszNewMsg, pszMsg);

	if(m_dwMaxMsg <= m_dequeMsg.size())
	{
		delete[] m_dequeMsg[0];
		m_dequeMsg.pop_front();

		if(m_dwMsgTake > 0)
			m_dwMsgTake--;
	}

	m_dequeMsg.push_back(pszNewMsg);
	return true;
}

//--------------------------------------------------------------
void CTxtMsgSet::ClearMsg(void)
{
	int nMsgAmount	=m_dequeMsg.size();
	for(int i=0; i<nMsgAmount; i++)
		delete [] m_dequeMsg[i];

	m_dequeMsg.clear();

	m_dwMsgTake	=0;
}

//--------------------------------------------------------------
const char* CTxtMsgSet::GetMsg(DWORD dwIndex) const
{
	if(dwIndex >= m_dequeMsg.size())
		return NULL;

	return m_dequeMsg[dwIndex];
}

//--------------------------------------------------------------
const char* CTxtMsgSet::GetLastMsg(void)
{
	if(m_dwMsgTake >= m_dequeMsg.size())
		return NULL;

	char* pLastMsg	=m_dequeMsg[m_dwMsgTake++];
	return pLastMsg;
}

//--------------------------------------------------------------
void CTxtMsgSet::SetMaxMsg(DWORD dwMaxMsg)
{
	DWORD dwCurMsgCount	=m_dequeMsg.size();
	if(dwMaxMsg < dwCurMsgCount)
	{
		for(UINT i=dwMaxMsg; i<dwCurMsgCount; i++)
		{
			delete[] m_dequeMsg[0];
			m_dequeMsg.pop_front();

			if(m_dwMsgTake > 0)
				m_dwMsgTake--;
		}
	}

	m_dwMaxMsg	=dwMaxMsg;
}

⌨️ 快捷键说明

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