www.pudn.com > mir112347628.rar > ClientSysMsg.cpp


/******************************************************************************************************************

¸ðµâ¸í:

ÀÛ¼ºÀÚ:
ÀÛ¼ºÀÏ:

[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤ ³»¿ë

*******************************************************************************************************************/



#include "StdAfx.h"



/******************************************************************************************************************

ClientSysMsg Class

*******************************************************************************************************************/

ClientSysMsg::ClientSysMsg()
{
Init();
}

ClientSysMsg::~ClientSysMsg()
{
Destroy();
}

VOID ClientSysMsg::Init()
{
m_wCurrDelay = 0;
}

VOID ClientSysMsg::Destroy()
{
m_stSysMsg.ClearAllNodes();
Init();
}

VOID ClientSysMsg::AddSysMsg(CHAR* szStr)
{
LPCONSTSTRING pstMsg = NULL;
while ( m_stSysMsg.GetCounter() >= _MAX_SYSMSG )
{
m_stSysMsg.MoveCurrentToTop();
pstMsg = m_stSysMsg.GetCurrentData();

if ( pstMsg )
{
m_stSysMsg.DeleteCurrentNodeEx();
SAFE_DELETE((LPCONSTSTRING)pstMsg);
}
}

m_stSysMsg.MoveCurrentToTail();
pstMsg = new CONSTSTRING;
strcpy(pstMsg->szMsg, szStr);
m_stSysMsg.AddNode(pstMsg);
m_wCurrDelay = 0;
}

VOID ClientSysMsg::ShowSysMsg(INT nLoopTime, INT nX, INT nY)
{
DWORD dwDelay = 3000;
LPCONSTSTRING pstMsg = NULL;
m_wCurrDelay += nLoopTime;

m_stSysMsg.MoveCurrentToTop();
for ( INT nCnt = 0; nCnt < m_stSysMsg.GetCounter(); nCnt++ )
{
LPCONSTSTRING pstMsg = m_stSysMsg.GetCurrentData();

if ( pstMsg )
{
g_xMainWnd.PutsHan(NULL, nX+1, nY+nCnt*15+1, RGB(10, 10, 10), RGB(0, 0, 0), pstMsg->szMsg);
g_xMainWnd.PutsHan(NULL, nX, nY+nCnt*15, RGB(100, 200, 100), RGB(0, 0, 0), pstMsg->szMsg);
}
m_stSysMsg.MoveNextNode();
}

if ( m_stSysMsg.GetCounter() > 5 ) dwDelay = 1000;

if ( m_wCurrDelay > dwDelay )
{
m_stSysMsg.MoveCurrentToTop();
if ( m_stSysMsg.GetCounter() )
{
pstMsg = m_stSysMsg.GetCurrentData();

if ( pstMsg )
{
m_stSysMsg.DeleteCurrentNodeEx();
SAFE_DELETE((LPCONSTSTRING)pstMsg);
}
}
m_wCurrDelay = 0;
}
}