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

📄 logitemmoneypage.cpp

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CLogItemMoneyPage property page

IMPLEMENT_DYNCREATE(CLogItemMoneyPage, CLDPropPage)


CLogItemMoneyPage::CLogItemMoneyPage() : CLDPropPage(CLogItemMoneyPage::IDD)
{
	//{{AFX_DATA_INIT(CLogItemMoneyPage)
	m_bCharName = FALSE;
	m_bItemName = FALSE;
	m_bDBIdx = FALSE;
	m_bOneDay = FALSE;
	//}}AFX_DATA_INIT
	m_LogTable.Initialize( 1000 );
	m_pDocument = NULL;
	m_bStart = FALSE;

	for( int i = 0; i < 14; ++i )
		m_bVOption[i] = TRUE;
}

CLogItemMoneyPage::~CLogItemMoneyPage()
{
	ReleaseLogTable();
}

void CLogItemMoneyPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLogItemMoneyPage)
	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_BUTTON_VIEWEROPTION, m_btnViewerOption);
	DDX_Control(pDX, IDC_COMBO_VIEWER_HOW, m_cbViewerHow);
	DDX_Control(pDX, IDC_COMBO_LOG_ITEMNAME, m_cbItemName);
	DDX_Control(pDX, IDC_EDIT_LOG_DBIDX, m_etDBIdx);
	DDX_Control(pDX, IDC_EDIT_LOG_CHARNAME, m_etCharName);
	DDX_Control(pDX, IDC_LISTCTRL_ITEMMONEYLOG, m_lcItemMoneyLog);
	DDX_Check(pDX, IDC_CHECK_LOG_CHARNAME, m_bCharName);
	DDX_Check(pDX, IDC_CHECK_LOG_ITEMNAME, m_bItemName);
	DDX_Check(pDX, IDC_CHECK_LOG_DBIDX, m_bDBIdx);
	DDX_Check(pDX, IDC_CHECK_LOG_ONEDAY, m_bOneDay);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLogItemMoneyPage, CPropertyPage)
	//{{AFX_MSG_MAP(CLogItemMoneyPage)
	ON_WM_CREATE()
	ON_BN_CLICKED(IDC_CHECK_LOG_CHARNAME, OnCheckLogCharname)
	ON_BN_CLICKED(IDC_CHECK_LOG_ITEMNAME, OnCheckLogItemname)
	ON_BN_CLICKED(IDC_CHECK_LOG_DBIDX, OnCheckLogDbidx)
	ON_BN_CLICKED(IDC_BUTTON_LOG_SEARCH, OnButtonLogSearch)
	ON_BN_CLICKED(IDC_CHECK_LOG_ONEDAY, OnCheckLogOneday)
	ON_CBN_SELCHANGE(IDC_COMBO_VIEWER_HOW, OnSelchangeComboViewerHow)
	ON_BN_CLICKED(IDC_BUTTON_VIEWEROPTION, OnButtonVieweroption)
	ON_BN_CLICKED(IDC_BTN_SAVETOFILE, OnBtnSavetofile)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLogItemMoneyPage message handlers

int CLogItemMoneyPage::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CPropertyPage::OnCreate(lpCreateStruct) == -1)
		return -1;

	return 0;
}

BOOL CLogItemMoneyPage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	// 
	m_bOneDay = TRUE;
	m_bCharName = TRUE;
	m_etCharName.EnableWindow( m_bCharName );
	InitComboItemName();
	InitComboViewerHow();

//	m_Font.CreatePointFont(100, "Arial");
//	m_lcItemMoneyLog.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 CLogItemMoneyPage::InitComboItemName()
{
	m_cbItemName.ResetContent();

	CYHHashTable<ITEM_INFO>* pItemInfoList = GAMERESRCMNGR->GetItemInfo();
	ITEM_INFO* pData = NULL;
	int index = 0;
	pItemInfoList->SetPositionHead();
	while( pData = pItemInfoList->GetData() )
	{
		m_cbItemName.AddString( pData->ItemName );
		m_cbItemName.SetItemData( index, pData->ItemIdx );
		++index;			
	}
	m_cbItemName.SetCurSel( 0 );
}

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

void CLogItemMoneyPage::OnCheckLogCharname() 
{
	m_bCharName = !m_bCharName;
	m_etCharName.EnableWindow( m_bCharName );
	UpdateData( FALSE );	
}

void CLogItemMoneyPage::OnCheckLogItemname() 
{
	m_bItemName = !m_bItemName;
	if( m_bItemName )
		m_bDBIdx = FALSE;
	m_cbItemName.EnableWindow( m_bItemName );
	m_etDBIdx.EnableWindow( m_bDBIdx );
	UpdateData( FALSE );	
}

void CLogItemMoneyPage::OnCheckLogDbidx() 
{
	m_bDBIdx = !m_bDBIdx;
	if( m_bDBIdx )
		m_bItemName = FALSE;	
	m_etDBIdx.EnableWindow( m_bDBIdx );
	m_cbItemName.EnableWindow( m_bItemName );	
	UpdateData( FALSE );	
}

void CLogItemMoneyPage::OnButtonLogSearch() 
{
	CString sName;
	DWORD dwItem = 0;

	// logtype
	DWORD dwLogType;
	if( m_bCharName == FALSE && m_bDBIdx == FALSE && m_bItemName == FALSE )
	{
		MessageBox( "Enter The Search Data!!", "Error" );
		return;
	}
	else if( m_bCharName == TRUE && m_bDBIdx == FALSE && m_bItemName == FALSE )		// 捞抚父,
	{
		dwLogType = eSearchType_ChrName;
		if( m_etCharName.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter Character Name!!", "Error" );
			return;
		}
		else
			m_etCharName.GetWindowText( sName );
	}
	else if( m_bCharName == TRUE && m_bDBIdx == TRUE && m_bItemName == FALSE )
	{
		dwLogType = eSearchType_ChrNameItemDBIdx;
		if( m_etCharName.GetWindowTextLength() == 0 || m_etDBIdx.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter The Search Data!!", "Error" );
			return;
		}
		else
		{
			m_etDBIdx.GetWindowText( sName );
			dwItem = atoi( (char*)(LPCTSTR)sName );
			m_etCharName.GetWindowText( sName );
		}
	}
	else if( m_bCharName == TRUE && m_bDBIdx == FALSE && m_bItemName == TRUE )
	{
		dwLogType = eSearchType_ChrNameItemIdx;
		if( m_etCharName.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter Character Name!!", "Error" );
			return;
		}
		else
		{
			m_etCharName.GetWindowText( sName );
			dwItem = m_cbItemName.GetItemData( m_cbItemName.GetCurSel() );
		}
	}
	else if( m_bCharName == FALSE && m_bDBIdx == TRUE && m_bItemName == FALSE )
	{
		dwLogType = eSearchType_ItemDBIdx;
		if( m_etDBIdx.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter Search Data!!", "Error" );
			return;
		}
		else
		{
			m_etDBIdx.GetWindowText( sName );
			dwItem = atoi( (char*)(LPCTSTR)sName );
		}
	}
	else if( m_bCharName == FALSE && m_bDBIdx == FALSE && m_bItemName == TRUE )
	{
		dwLogType = eSearchType_ItemIdx;
		dwItem = m_cbItemName.GetItemData( m_cbItemName.GetCurSel() );		
	}

	// Search
	if( dwLogType == eSearchType_ItemDBIdx || dwLogType == eSearchType_ItemIdx )
	{
		SetCharacterIdx( 0 );
	}
	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 = 0;
	}
}

void CLogItemMoneyPage::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;
	DWORD dwItem = 0;
	// Date
	if( m_bOneDay )
	{
		m_StartTime.GetWindowText( sSDate );
		sEDate.Empty();		
	}
	else
	{
		m_StartTime.GetWindowText( sSDate );
		m_EndTime.GetWindowText( sEDate );
	}

	// logtype
	DWORD dwLogType;
	if( m_bCharName == FALSE && m_bDBIdx == FALSE && m_bItemName == FALSE )
	{
		MessageBox( "Enter The Search Data!!", "Error" );
		return;
	}
	else if( m_bCharName == TRUE && m_bDBIdx == FALSE && m_bItemName == FALSE )		// 捞抚父,
	{
		dwLogType = eSearchType_ChrName;
		if( m_etCharName.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter Character Name!!", "Error" );
			return;
		}
		else
			m_etCharName.GetWindowText( sName );
	}
	else if( m_bCharName == TRUE && m_bDBIdx == TRUE && m_bItemName == FALSE )
	{
		dwLogType = eSearchType_ChrNameItemDBIdx;
		if( m_etCharName.GetWindowTextLength() == 0 || m_etDBIdx.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter The Search Data!!", "Error" );
			return;
		}
		else
		{
			m_etDBIdx.GetWindowText( sName );
			dwItem = atoi( (char*)(LPCTSTR)sName );
			m_etCharName.GetWindowText( sName );
		}
	}
	else if( m_bCharName == TRUE && m_bDBIdx == FALSE && m_bItemName == TRUE )
	{
		dwLogType = eSearchType_ChrNameItemIdx;
		if( m_etCharName.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter Character Name!!", "Error" );
			return;
		}
		else
		{
			m_etCharName.GetWindowText( sName );
			dwItem = m_cbItemName.GetItemData( m_cbItemName.GetCurSel() );
		}
	}
	else if( m_bCharName == FALSE && m_bDBIdx == TRUE && m_bItemName == FALSE )
	{
		dwLogType = eSearchType_ItemDBIdx;
		if( m_etDBIdx.GetWindowTextLength() == 0 )
		{
			MessageBox( "Enter Search Data!!", "Error" );
			return;
		}
		else
		{
			m_etDBIdx.GetWindowText( sName );
			dwItem = atoi( (char*)(LPCTSTR)sName );
		}
	}
	else if( m_bCharName == FALSE && m_bDBIdx == FALSE && m_bItemName == TRUE )
	{
		dwLogType = eSearchType_ItemIdx;
		dwItem = m_cbItemName.GetItemData( m_cbItemName.GetCurSel() );		
	}
	
	// Search
	TMSG_GAMELOGSEARCH GameLogSearch;
	GameLogSearch.Category = MP_RMTOOL_GAMELOG;
	GameLogSearch.Protocol = MP_RMTOOL_ITEMMONEYLOGFROMTYPE_SYN;
	GameLogSearch.dwTemplateIdx = m_pDocument->GetDocumentIdx();
	GameLogSearch.wServer = 0;
	GameLogSearch.wType = dwLogType;
	GameLogSearch.dwChrIdx = m_dwCharIdx;
	GameLogSearch.dwItem = dwItem;
	GameLogSearch.bDayOnly = m_bOneDay;
	strcpy( GameLogSearch.sSDate, (char*)(LPCTSTR)sSDate );
	strcpy( GameLogSearch.sEDate, (char*)(LPCTSTR)sEDate );

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

	ReleaseLogTable();

	m_pDocument->StartDlg();
}

void CLogItemMoneyPage::SetLogItemMoney( TMSG_LOGITEMMONEY* pMsg )
{
//	if( !pMsg->bEnd )
//		ReleaseLogTable();
	for( int i = 0; i < pMsg->wCount; ++i )
	{
		LOGITEMMONEY* pData = new LOGITEMMONEY;
		memcpy( pData, &pMsg->sLog[i], sizeof(LOGITEMMONEY) );

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

	InitLCItemMoneyLog();

⌨️ 快捷键说明

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