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

📄 logtotalpage.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// LogTotalPage.cpp : implementation file
//

#include "stdafx.h"
#include "ds_rmtool.h"
#include "LogTotalPage.h"
#include "RMNetwork.h"
#include "LogDoc.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLogTotalPage dialog

IMPLEMENT_DYNCREATE(CLogTotalPage, CLDPropPage)

CLogTotalPage::CLogTotalPage() : CLDPropPage(CLogTotalPage::IDD)
{
	//{{AFX_DATA_INIT(CLogTotalPage)
	m_bOneDay = FALSE;
	m_nLogKind = -1;
	//}}AFX_DATA_INIT
	m_bStart = FALSE;

	m_CharacterLogTable.Initialize( 500 );
	m_ExpPointLogTable.Initialize( 500 );
	m_MugongLogTable.Initialize( 500 );
	m_MugongExpLogTable.Initialize( 500 );
	m_MoneyLogTable.Initialize( 500 );
	m_MoneyWrongLogTable.Initialize( 500 );
	m_AbilityLogTable.Initialize( 500 );
}

CLogTotalPage::~CLogTotalPage()
{
	ReleaseCharacterLogTable();
	ReleaseExpPointLogTable();
	ReleaseMugongLogTable();
	ReleaseMugongExpLogTable();
	ReleaseMoneyLogTable();
	ReleaseMoneyWrongLogTable();
	ReleaseAbilityLogTable();
}

void CLogTotalPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLogTotalPage)
	DDX_Control(pDX, IDC_DATETIMEPICKER_START, m_StartTime);
	DDX_Control(pDX, IDC_DATETIMEPICKER_END, m_EndTime);
	DDX_Control(pDX, IDC_EDIT_CHARIDX, m_etCharIdx);
	DDX_Control(pDX, IDC_EDIT_LOG_CHARNAME, m_etCharName);
	DDX_Control(pDX, IDC_LISTCTRL_TOTALLOG, m_lcTotal);
	DDX_Check(pDX, IDC_CHECK_LOG_ONEDAY, m_bOneDay);
	DDX_Radio(pDX, IDC_RADIO1, m_nLogKind);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLogTotalPage, CLDPropPage)
	//{{AFX_MSG_MAP(CLogTotalPage)
	ON_WM_CREATE()
	ON_BN_CLICKED(IDC_BUTTON_LOG_SEARCH, OnButtonLogSearch)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
	ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
	ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
	ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
	ON_BN_CLICKED(IDC_RADIO7, OnRadio7)
	ON_BN_CLICKED(IDC_CHECK_LOG_ONEDAY, OnCheckLogOneday)
	ON_BN_CLICKED(IDC_BTN_SAVETOFILE, OnBtnSavetofile)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLogTotalPage message handlers

int CLogTotalPage::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CLDPropPage::OnCreate(lpCreateStruct) == -1)
		return -1;	

	return 0;
}

BOOL CLogTotalPage::OnInitDialog() 
{
	CLDPropPage::OnInitDialog();

	m_bOneDay = TRUE;
	m_nLogKind = 0;	
	m_dwCharIdx = 0;
	
//	m_Font.CreatePointFont(100, "Arial");
//	m_lcTotal.SetFont( &m_Font );

	UpdateData( FALSE );

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

void CLogTotalPage::OnButtonLogSearch() 
{
	CString sName;
	
	if( m_etCharName.GetWindowTextLength() == 0 )
	{
		MessageBox( "Enter The Search Character Name!!", "Error" );
		return;
	}
	else
		m_etCharName.GetWindowText( sName );

	// Search
	TMSG_CHECKNAME Msg;
	Msg.Category = MP_RMTOOL_GAMELOG;
	Msg.Protocol = MP_RMTOOL_QUERY_CHARIDX_SYN;
	Msg.dwTemplateIdx = m_pDocument->GetDocumentIdx();
	strcpy( Msg.sName, (char*)(LPCTSTR)sName );

	NETWORK->Send( &Msg, sizeof(TMSG_CHECKNAME) );

	m_pDocument->m_dwPage = 1;
}

void CLogTotalPage::SetCharacterIdx( DWORD dwCharIdx )
{
	if( dwCharIdx == 0 )
		return;

	char temp[128] = {0, };
	sprintf( temp, "%d", dwCharIdx );
	m_etCharIdx.SetWindowText( temp );
	m_etCharIdx.EnableWindow( TRUE );
	m_dwCharIdx = dwCharIdx;

	CString sName, sSDate, sEDate;
	// Date
	if( m_bOneDay )
	{
		m_StartTime.GetWindowText( sSDate );
		sEDate.Empty();
	}
	else
	{
		m_StartTime.GetWindowText( sSDate );
		m_EndTime.GetWindowText( sEDate );
	}
	
	// Search
	TMSG_GAMELOGSEARCH GameLogSearch;
	GameLogSearch.Category = MP_RMTOOL_GAMELOG;

	switch( m_nLogKind )
	{
	case eTotalLogKind_Character:
		{
			GameLogSearch.Protocol = MP_RMTOOL_CHARACTERLOG_SYN;
			ReleaseCharacterLogTable();
		}
		break;
	case eTotalLogKind_ExpPoint:
		{
			GameLogSearch.Protocol = MP_RMTOOL_EXPPOINTLOG_SYN;
			ReleaseExpPointLogTable();
		}
		break;
	case eTotalLogKind_Mugong:
		{
			GameLogSearch.Protocol = MP_RMTOOL_MUGONGLOG_SYN;
			ReleaseMugongLogTable();
		}
		break;
	case eTotalLogKind_MugongExp:
		{
			GameLogSearch.Protocol = MP_RMTOOL_MUGONGEXPLOG_SYN;
			ReleaseMugongExpLogTable();
		}
		break;
	case eTotalLogKind_Money:
		{
			GameLogSearch.Protocol = MP_RMTOOL_MONEYLOG_SYN;
			ReleaseMoneyLogTable();
		}
		break;
	case eTotalLogKind_MoneyWrong:
		{
			GameLogSearch.Protocol = MP_RMTOOL_MONEYWRONGLOG_SYN;
			ReleaseMoneyWrongLogTable();
		}
		break;
	case eTotalLogKind_Ability:
		{
			GameLogSearch.Protocol = MP_RMTOOL_ABILITYLOG_SYN;
			ReleaseAbilityLogTable();
		}
		break;
	}

	GameLogSearch.dwTemplateIdx = m_pDocument->GetDocumentIdx();
	GameLogSearch.wServer = 0;
	GameLogSearch.wType = m_nLogKind;
//	strcpy( GameLogSearch.str, (char*)(LPCTSTR)sName );
	GameLogSearch.dwItem = m_dwCharIdx;
	GameLogSearch.bDayOnly = m_bOneDay;
	strcpy( GameLogSearch.sSDate, (char*)(LPCTSTR)sSDate );
	strcpy( GameLogSearch.sEDate, (char*)(LPCTSTR)sEDate );

	NETWORK->Send( &GameLogSearch, sizeof(TMSG_GAMELOGSEARCH) );

	m_pDocument->StartDlg();
}

void CLogTotalPage::OnCheckLogOneday() 
{
	m_bOneDay = !m_bOneDay;	
//	m_StartTime.EnableWindow( !m_bOneDay );
	m_EndTime.EnableWindow( !m_bOneDay );
	UpdateData( FALSE );
}

void CLogTotalPage::OnRadio1() 
{
	m_nLogKind = eTotalLogKind_Character;
}

void CLogTotalPage::OnRadio2() 
{
	m_nLogKind = eTotalLogKind_ExpPoint;	
}

void CLogTotalPage::OnRadio3() 
{
	m_nLogKind = eTotalLogKind_Mugong;	
}

void CLogTotalPage::OnRadio4() 
{
	m_nLogKind = eTotalLogKind_MugongExp;
}

void CLogTotalPage::OnRadio5() 
{
	m_nLogKind = eTotalLogKind_Money;
}

void CLogTotalPage::OnRadio6() 
{
	m_nLogKind = eTotalLogKind_MoneyWrong;
}

void CLogTotalPage::OnRadio7() 
{
	m_nLogKind = eTotalLogKind_Ability;
}
 
void CLogTotalPage::SetCharacterLog( TMSG_CHARACTERLOG* pMsg )
{
	for( int i = 0; i < pMsg->wCount; ++i )
	{
		CHARACTERLOG* pData = new CHARACTERLOG;
		memcpy( pData, &pMsg->sLog[i], sizeof(CHARACTERLOG) );

		m_CharacterLogTable.Add( pData, pData->dwLogIdx );
	}

	InitListControl( eTotalLogKind_Character );
	UpdateListControl( eTotalLogKind_Character );
}

void CLogTotalPage::SetExpPointLog( TMSG_EXPPOINTLOG* pMsg )
{
	for( int i = 0; i < pMsg->wCount; ++i )
	{
		EXPPOINTLOG* pData = new EXPPOINTLOG;
		memcpy( pData, &pMsg->sLog[i], sizeof(EXPPOINTLOG) );

		m_ExpPointLogTable.Add( pData, pData->dwLogIdx );
	}

	InitListControl( eTotalLogKind_ExpPoint );
	UpdateListControl( eTotalLogKind_ExpPoint );
}

void CLogTotalPage::SetMugongLog( TMSG_MUGONGLOG* pMsg )
{
	for( int i = 0; i < pMsg->wCount; ++i )
	{
		MUGONGLOG* pData = new MUGONGLOG;
		memcpy( pData, &pMsg->sLog[i], sizeof(MUGONGLOG) );

		m_MugongLogTable.Add( pData, pData->dwLogIdx );
	}

	InitListControl( eTotalLogKind_Mugong );
	UpdateListControl( eTotalLogKind_Mugong );
}

void CLogTotalPage::SetMugongExpLog( TMSG_MUGONGEXPLOG* pMsg )
{
	for( int i = 0; i < pMsg->wCount; ++i )
	{
		MUGONGEXPLOG* pData = new MUGONGEXPLOG;
		memcpy( pData, &pMsg->sLog[i], sizeof(MUGONGEXPLOG) );

		m_MugongExpLogTable.Add( pData, pData->dwLogIdx );
	}

	InitListControl( eTotalLogKind_MugongExp );
	UpdateListControl( eTotalLogKind_MugongExp );
}

void CLogTotalPage::SetMoneyLog( TMSG_MONEYLOG* pMsg )
{
	for( int i = 0; i < pMsg->wCount; ++i )
	{
		MONEYLOG* pData = new MONEYLOG;
		memcpy( pData, &pMsg->sLog[i], sizeof(MONEYLOG) );

		m_MoneyLogTable.Add( pData, pData->dwLogIdx );
	}

	InitListControl( eTotalLogKind_Money );
	UpdateListControl( eTotalLogKind_Money );
}

void CLogTotalPage::SetMoneyWrongLog( TMSG_MONEYWRONGLOG* pMsg )
{
	for( int i = 0; i < pMsg->wCount; ++i )
	{
		MONEYWRONGLOG* pData = new MONEYWRONGLOG;
		memcpy( pData, &pMsg->sLog[i], sizeof(MONEYWRONGLOG) );

⌨️ 快捷键说明

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