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

📄 dlgchat.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
// DlgAct.cpp : implementation file
//

#include "stdafx.h"
#include "MyShell.h"
#include "DlgChat.h"

#include "GameMsg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgChat dialog


CDlgChat::CDlgChat(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgChat::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgChat)
	m_bShow = false ;
	m_Pnt = CPoint ( 0, 0 ) ;
	m_usCurChannel = 0 ;
	m_dwCurColor = 0 ;
	m_bColorList = false ;
	m_nColorLog[0] = 7 ;
	m_nColorLog[1] = 6 ;
	m_nColorLog[2] = 6 ;
	m_nColorLog[3] = 6 ;
	m_nColorLog[4] = 6 ;
	m_nColorLog[5] = 6 ;
	m_dwColor[0] = 0xDE6E2C ;
	m_dwColor[1] = 0xFFADAD ;
	m_dwColor[2] = 0xF62D1E ;
	m_dwColor[3] = 0x34EEFF ;
	m_dwColor[4] = 0x126AFC ;
	m_dwColor[5] = 0xADFFAD ;
	m_dwColor[6] = 0xF1FF00 ;
	m_dwColor[7] = 0xEAE9E9 ;
	//}}AFX_DATA_INIT
}


void CDlgChat::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgChat)
	DDX_Control(pDX, IDC_CHAT_IMG_CC1, m_ChatImgCc1);
	DDX_Control(pDX, IDC_CHAT_IMG_CC2, m_ChatImgCc2);
	DDX_Control(pDX, IDC_CHAT_IMG_CC3, m_ChatImgCc3);
	DDX_Control(pDX, IDC_CHAT_IMG_CC4, m_ChatImgCc4);
	DDX_Control(pDX, IDC_CHAT_IMG_CC5, m_ChatImgCc5);
	DDX_Control(pDX, IDC_CHAT_IMG_CC6, m_ChatImgCc6);
	DDX_Control(pDX, IDC_CHAT_IMG_CC7, m_ChatImgCc7);
	DDX_Control(pDX, IDC_CHAT_IMG_CC8, m_ChatImgCc8);
	DDX_Control(pDX, IDC_CHAT_IMG_BC, m_ChatImgBc);
	DDX_Control(pDX, IDC_CHAT_IMG_DC, m_ChatImgDc);
	DDX_Control(pDX, IDC_CHAT_IMG_GC, m_ChatImgGc);
	DDX_Control(pDX, IDC_CHAT_IMG_SC, m_ChatImgSc);
	DDX_Control(pDX, IDC_CHAT_IMG_HC, m_ChatImgHc);
	DDX_Control(pDX, IDC_CHAT_IMG_ZC, m_ChatImgZc);
	DDX_Control(pDX, IDC_CHAT_CHK_SF, m_ChatChkSF);
	DDX_Control(pDX, IDC_CHAT_CHK_S, m_ChatChkS);
	DDX_Control(pDX, IDC_CHAT_BTN_CLOSES, m_ChatBtnCloseS);
	DDX_Control(pDX, IDC_CHAT_CLOSEB, m_ChatBtnCloseB);
	DDX_Control(pDX, IDC_CHAT_CHK_H, m_ChatCHkH);
	DDX_Control(pDX, IDC_CHAT_CHK_G, m_ChatCHkG);
	DDX_Control(pDX, IDC_CHAT_CHK_D, m_ChatCHkD);
	DDX_Control(pDX, IDC_CHAT_CHK_B, m_ChatChkB);
	DDX_Control(pDX, IDC_CHAT_CHK_Z, m_ChatChkZ);
	DDX_Control(pDX, IDC_CHAT_BTN_SIFT, m_ChatBtnSift);
	DDX_Control(pDX, IDC_CHAT_BTN_RECORD, m_ChatBtnRecord);
	DDX_Control(pDX, IDC_BTN_HELP, m_BtnHelp);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgChat, CDialog)
	//{{AFX_MSG_MAP(CDlgChat)
	ON_WM_CTLCOLOR()
	ON_WM_MOVE()
	ON_BN_CLICKED(IDC_CHAT_BTN_CLOSES, OnChatBtnCloses)
	ON_BN_CLICKED(IDC_BTN_HELP, OnBtnHelp)
	ON_BN_CLICKED(IDC_CHAT_CLOSEB, OnChatCloseb)
	ON_BN_CLICKED(IDC_CHAT_BTN_RECORD, OnChatBtnRecord)
	ON_BN_CLICKED(IDC_CHAT_BTN_SIFT, OnChatBtnSift)
	ON_BN_CLICKED(IDC_CHAT_CHK_G, OnChatChkG)
	ON_BN_CLICKED(IDC_CHAT_CHK_B, OnChatChkB)
	ON_BN_CLICKED(IDC_CHAT_CHK_D, OnChatChkD)
	ON_BN_CLICKED(IDC_CHAT_CHK_H, OnChatChkH)
	ON_BN_CLICKED(IDC_CHAT_CHK_S, OnChatChkS)
	ON_BN_CLICKED(IDC_CHAT_CHK_Z, OnChatChkZ)
	ON_BN_CLICKED(IDC_CHAT_CHK_SF, OnChatChkSf)
	ON_BN_CLICKED(IDC_CHAT_IMG_GC, OnChatImgGc)
	ON_BN_CLICKED(IDC_CHAT_IMG_DC, OnChatImgDc)
	ON_BN_CLICKED(IDC_CHAT_IMG_SC, OnChatImgSc)
	ON_BN_CLICKED(IDC_CHAT_IMG_BC, OnChatImgBc)
	ON_BN_CLICKED(IDC_CHAT_IMG_HC, OnChatImgHc)
	ON_BN_CLICKED(IDC_CHAT_IMG_ZC, OnChatImgZc)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC1, OnChatImgCc1)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC2, OnChatImgCc2)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC3, OnChatImgCc3)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC4, OnChatImgCc4)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC5, OnChatImgCc5)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC6, OnChatImgCc6)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC7, OnChatImgCc7)
	ON_BN_CLICKED(IDC_CHAT_IMG_CC8, OnChatImgCc8)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgChat message handlers

LRESULT CDlgChat::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	if ( message == WM_SHOWWINDOW )
	{
		m_bShow = wParam ;
	}
	else if ( message == WM_COMMAND )
	{
		if ( wParam == 1 || wParam == 2 ) 
			return true;
	}

	return CDialog::WindowProc(message, wParam, lParam);
}

HBRUSH CDlgChat::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	pDC->SetBkMode ( TRANSPARENT ) ;
	return g_StockBrush ;
}

BOOL CDlgChat::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CRect rect ;
	CDlgChat::GetWindowRect ( rect ) ;

	// Init the button
	m_ChatBtnCloseS.Init ( rect.left, rect.top, "Button5" ) ;
	m_ChatBtnCloseB.Init ( rect.left, rect.top, "Button3" ) ;
	m_ChatBtnSift.Init ( rect.left, rect.top, "Button361" ) ;
	m_ChatBtnRecord.Init ( rect.left, rect.top, "Button360" ) ;
	m_BtnHelp.Init ( rect.left, rect.top, "Button4" ) ;

	// Init the check
	m_ChatCHkG.Init ( rect.left, rect.top, "Check360", 2 ) ;
	m_ChatChkB.Init ( rect.left, rect.top, "Check361", 2 ) ;
	m_ChatCHkD.Init ( rect.left, rect.top, "Check362", 2 ) ;
	m_ChatCHkH.Init ( rect.left, rect.top, "Check363", 2 ) ;
	m_ChatChkS.Init ( rect.left, rect.top, "Check364", 2 ) ;
	m_ChatChkSF.Init ( rect.left, rect.top, "Check365", 2 ) ;
	m_ChatChkZ.Init ( rect.left, rect.top, "Check366", 2 ) ;
	m_ChatCHkG.SetCheckValue ( 1 ) ;
	m_ChatChkB.SetCheckValue ( 1 ) ;
	m_ChatCHkD.SetCheckValue ( 1 ) ;
	m_ChatCHkH.SetCheckValue ( 1 ) ;
	m_ChatChkS.SetCheckValue ( 1 ) ;
	m_ChatChkZ.SetCheckValue ( 1 ) ;

	// Init the image
	m_ChatImgBc.Init ( rect.left, rect.top, "Image366" ) ;
	m_ChatImgDc.Init ( rect.left, rect.top, "Image366" ) ;
	m_ChatImgGc.Init ( rect.left, rect.top, "Image367" ) ;
	m_ChatImgSc.Init ( rect.left, rect.top, "Image366" ) ;
	m_ChatImgHc.Init ( rect.left, rect.top, "Image366" ) ;
	m_ChatImgZc.Init ( rect.left, rect.top, "Image366" ) ;

	m_ChatImgCc1.Init ( rect.left, rect.top, "Image360" ) ;
	m_ChatImgCc2.Init ( rect.left, rect.top, "Image361" ) ;
	m_ChatImgCc3.Init ( rect.left, rect.top, "Image362" ) ;
	m_ChatImgCc4.Init ( rect.left, rect.top, "Image363" ) ;
	m_ChatImgCc5.Init ( rect.left, rect.top, "Image364" ) ;
	m_ChatImgCc6.Init ( rect.left, rect.top, "Image365" ) ;
	m_ChatImgCc7.Init ( rect.left, rect.top, "Image366" ) ;
	m_ChatImgCc8.Init ( rect.left, rect.top, "Image367" ) ;

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgChat::OnMove(int x, int y) 
{
	CDialog::OnMove(x, y);
	
	m_Pnt.x = x ;
	m_Pnt.y = y ;
}

void CDlgChat::Show()
{
	if ( m_bShow )
	{
		// Show the owner
		CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * )g_strControlAni,
													  "Dialog36",
													  EXIGENCE_IMMEDIATE ) ;
		if ( ShowAni != NULL )
			ShowAni->Show ( 0,
							m_Pnt.x,
							m_Pnt.y ) ;
		else
			return ;

		ShowAni = g_objGameDataSet.GetDataAni ( ( char * )g_strControlAni,
													  "Image36",
													  EXIGENCE_IMMEDIATE ) ;
		if ( ShowAni != NULL )
			ShowAni->Show ( 0,
							m_Pnt.x + 90,
							m_Pnt.y + 6 ) ;
		else
			return ;

		// Show the buttons
		m_ChatBtnCloseS.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatBtnCloseB.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatBtnSift.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatBtnRecord.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_BtnHelp.Show ( m_Pnt.x, m_Pnt.y ) ;

		// Show the check
		m_ChatCHkH.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatCHkG.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatCHkD.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatChkB.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatChkS.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatChkZ.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatChkSF.Show ( m_Pnt.x, m_Pnt.y ) ;

		// Show the image
		m_ChatImgBc.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatImgDc.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatImgGc.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatImgSc.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatImgHc.Show ( m_Pnt.x, m_Pnt.y ) ;
		m_ChatImgZc.Show ( m_Pnt.x, m_Pnt.y ) ;

		if ( m_bColorList )
		{
			m_ChatImgCc1.Show ( m_Pnt.x, m_Pnt.y ) ;
			m_ChatImgCc2.Show ( m_Pnt.x, m_Pnt.y ) ;
			m_ChatImgCc3.Show ( m_Pnt.x, m_Pnt.y ) ;
			m_ChatImgCc4.Show ( m_Pnt.x, m_Pnt.y ) ;
			m_ChatImgCc5.Show ( m_Pnt.x, m_Pnt.y ) ;
			m_ChatImgCc6.Show ( m_Pnt.x, m_Pnt.y ) ;
			m_ChatImgCc7.Show ( m_Pnt.x, m_Pnt.y ) ;
			m_ChatImgCc8.Show ( m_Pnt.x, m_Pnt.y ) ;
		}
	}
}

void CDlgChat::OnChatBtnCloses() 
{
	CDlgChat::ShowWindow ( SW_HIDE ) ;	
}

void CDlgChat::OnBtnHelp() 
{
	CDlgChat::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_HELPDLG_SHOW, DLG_CHAT ) ;
}

void CDlgChat::OnChatCloseb() 
{
	CDlgChat::ShowWindow ( SW_HIDE ) ;
}

void CDlgChat::OnChatBtnRecord() 
{
	CDlgChat::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_TALK_LOG ) ;
}

void CDlgChat::OnChatBtnSift() 
{
	CDlgChat::ShowWindow ( SW_HIDE ) ;
	CDlgChat::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_CHAT_SIFT ) ;
}

void CDlgChat::OnChatChkG() 
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	if( m_ChatCHkG.GetCheckValue () )
		g_objGameMsg.SetChannelStatus ( _TXTATR_TALK, true ) ;
	else
		g_objGameMsg.SetChannelStatus ( _TXTATR_TALK, false ) ;
}

void CDlgChat::OnChatChkB() 
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	if( m_ChatChkB.GetCheckValue () )
		g_objGameMsg.SetChannelStatus ( _TXTATR_SYNDICATE, true ) ;
	else
		g_objGameMsg.SetChannelStatus ( _TXTATR_SYNDICATE, false ) ;
}

void CDlgChat::OnChatChkD() 
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	if( m_ChatCHkD.GetCheckValue () )
		g_objGameMsg.SetChannelStatus ( _TXTATR_TEAM, true ) ;
	else
		g_objGameMsg.SetChannelStatus ( _TXTATR_TEAM, false ) ;
}

void CDlgChat::OnChatChkH() 
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	if( m_ChatCHkH.GetCheckValue () )
		g_objGameMsg.SetChannelStatus ( _TXTATR_FRIEND, true ) ;
	else
		g_objGameMsg.SetChannelStatus ( _TXTATR_FRIEND, false ) ;
}

void CDlgChat::OnChatChkS() 
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	if ( m_ChatChkS.GetCheckValue () )
	{
		g_objGameMsg.SetPrivateChannelStatusExceptFriend(true);
		g_objGameMsg.SetPrivateChannelStatusFriendOnly(true);
	}
	else
	{
		g_objGameMsg.SetPrivateChannelStatusExceptFriend(false);
		g_objGameMsg.SetPrivateChannelStatusFriendOnly(false);
	}
}

void CDlgChat::OnChatChkZ()
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	if( m_ChatChkZ.GetCheckValue () )
		g_objGameMsg.SetChannelStatus ( _TXTATR_ACTION, true ) ;
	else
		g_objGameMsg.SetChannelStatus ( _TXTATR_ACTION, false ) ;
}

void CDlgChat::OnChatChkSf() 
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	if ( m_ChatChkSF.GetCheckValue () )
	{
		g_objGameMsg.SetPrivateChannelStatusExceptFriend(false);
		g_objGameMsg.SetPrivateChannelStatusFriendOnly(true);
	}
	else
	{
		g_objGameMsg.SetPrivateChannelStatusExceptFriend(true);
		g_objGameMsg.SetPrivateChannelStatusFriendOnly(true);
	}
}

void CDlgChat::OnChatImgGc() 
{
	m_bColorList = !m_bColorList ;
	if ( m_bColorList )
		m_usCurChannel = _TXTATR_TALK ;
}

void CDlgChat::OnChatImgDc() 
{
	m_bColorList = !m_bColorList ;
	if ( m_bColorList )
		m_usCurChannel = _TXTATR_TEAM ;
}

void CDlgChat::OnChatImgSc() 
{
	m_bColorList = !m_bColorList ;
	if ( m_bColorList )
		m_usCurChannel = _TXTATR_PRIVATE ;
}

void CDlgChat::OnChatImgBc() 
{
	m_bColorList = !m_bColorList ;
	if ( m_bColorList )
		m_usCurChannel = _TXTATR_SYNDICATE ;
}

void CDlgChat::OnChatImgHc() 
{
	m_bColorList = !m_bColorList ;
	if ( m_bColorList )
		m_usCurChannel = _TXTATR_FRIEND ;
}

void CDlgChat::OnChatImgZc()
{
	m_bColorList = !m_bColorList ;
	if ( m_bColorList )
		m_usCurChannel = _TXTATR_ACTION ;
}

void CDlgChat::OnChatImgCc1() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[0] ) ;
		CDlgChat::ChangeColor ( 360 ) ;
		m_bColorList = false ;
	}
}

void CDlgChat::OnChatImgCc2() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[1] ) ;
		CDlgChat::ChangeColor ( 361 ) ;
		m_bColorList = false ;
	}
}

void CDlgChat::OnChatImgCc3() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[2] ) ;
		CDlgChat::ChangeColor ( 362 ) ;
		m_bColorList = false ;
	}
}

void CDlgChat::OnChatImgCc4() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[3] ) ;
		CDlgChat::ChangeColor ( 363 ) ;
		m_bColorList = false ;
	}	
}

void CDlgChat::OnChatImgCc5() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[4] ) ;
		CDlgChat::ChangeColor ( 364 ) ;
		m_bColorList = false ;
	}	
}

void CDlgChat::OnChatImgCc6() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[5] ) ;
		CDlgChat::ChangeColor ( 365 ) ;
		m_bColorList = false ;
	}	
}

void CDlgChat::OnChatImgCc7() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[6] ) ;
		CDlgChat::ChangeColor ( 366 ) ;
		m_bColorList = false ;
	}	
}

void CDlgChat::OnChatImgCc8() 
{
	if ( m_bColorList )
	{
		g_objGameMsg.SetChannelColor ( m_usCurChannel, m_dwColor[7] ) ;
		CDlgChat::ChangeColor ( 367 ) ;
		m_bColorList = false ;
	}	
}

void CDlgChat::ChangeColor(int nColorIndex)
{
	char strImg[16] ;
	sprintf ( strImg, "Image%d", nColorIndex ) ;
	switch ( m_usCurChannel )
	{
	case _TXTATR_TALK:
		m_ChatImgGc.InsertImage ( strImg ) ;
		m_nColorLog[0] = nColorIndex % 10 ;
		break ;
	case _TXTATR_FRIEND:
		m_ChatImgHc.InsertImage ( strImg ) ;
		m_nColorLog[1] = nColorIndex % 10 ;
		break ;
	case _TXTATR_SYNDICATE:
		m_ChatImgBc.InsertImage ( strImg ) ;
		m_nColorLog[2] = nColorIndex % 10 ;
		break ;
	case _TXTATR_TEAM:
		m_ChatImgDc.InsertImage ( strImg ) ;
		m_nColorLog[3] = nColorIndex % 10 ;
		break ;
	case _TXTATR_PRIVATE:
		m_ChatImgSc.InsertImage ( strImg ) ;
		m_nColorLog[4] = nColorIndex % 10 ;
		break ;
	case _TXTATR_ACTION:
		m_ChatImgZc.InsertImage ( strImg ) ;
		m_nColorLog[5] = nColorIndex % 10 ;
		break ;
	}
}

⌨️ 快捷键说明

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