📄 parsemessage.cpp
字号:
#include "Stdafx.h"
#include "ParseMessage.h"
#include "ClientSocket.h"
#include "CChatServer.h"
extern CCChatServerApp theApp;
CParseMessage::~CParseMessage()
{
}
CParseMessage::CParseMessage(const CMyTreeView * pWnd,const Message & Value)
{
pView = const_cast < CMyTreeView *>(pWnd);
Msg = Value;
}
BOOL CParseMessage::SWitchMessage()
{
ASSERT(pView != NULL);
ASSERT_VALID(pView);
switch(Msg.iType)
{
case USERLOG:
switch(Msg.iSubType)
{
case USERLOGIN:
pView ->OnNewClientIn(Msg,0);
break;
default:
break;
}
break;
case USERSESSION:
switch(Msg.iSubType)
{
default:
break;
case CHANGEROOM:
pView ->OnChangeRoom(Msg,0);
break;
case SAYINPRIVATE:
pView ->OnSendInPrivate(Msg,0);
break;
case USERQUIT:
{
g_cs.Lock();
CString strUserName = Msg.strName;
CString strRoomName = Msg.strRoom;
CPtrList * m_pClientList = theApp.m_pClientSocketList;
int iCount = m_pClientList->GetCount();
POSITION pos = m_pClientList ->GetHeadPosition();
POSITION tempos = pos;
if(pos)
{
for(int i = 0; i < m_pClientList ->GetCount(); i++)
{
tempos = pos;
CClientSocket *m_pClientSocket = static_cast < CClientSocket *>(m_pClientList->GetNext(pos));
if(m_pClientSocket ->GetRoomName() == strRoomName && m_pClientSocket ->GetUserName() == strUserName)
{
m_pClientSocket ->ShutDown();
m_pClientSocket ->Close();
delete m_pClientSocket;
m_pClientList->RemoveAt(tempos);
break;
}
}
g_cs.Unlock();
}
pView ->OnClientOut(Msg,0);
}
break;
}
break;
default:
break;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -