📄 logtotalpage.cpp
字号:
// 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 + -