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

📄 logtotalpage.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 3 页
字号:

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

	InitListControl( eTotalLogKind_MoneyWrong );
	UpdateListControl( eTotalLogKind_MoneyWrong );
}

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

		m_AbilityLogTable.Add( pData, pData->dwAbilityIdx );
	}

	InitListControl( eTotalLogKind_Ability );
	UpdateListControl( eTotalLogKind_Ability );
}

void CLogTotalPage::ReleaseCharacterLogTable()
{
	CHARACTERLOG* pData = NULL;
	m_CharacterLogTable.SetPositionHead();
	while( pData = m_CharacterLogTable.GetData() )
		delete pData;
	m_CharacterLogTable.RemoveAll();
}

void CLogTotalPage::ReleaseExpPointLogTable()
{
	EXPPOINTLOG* pData = NULL;
	m_ExpPointLogTable.SetPositionHead();
	while( pData = m_ExpPointLogTable.GetData() )
		delete pData;
	m_ExpPointLogTable.RemoveAll();
}
	
void CLogTotalPage::ReleaseMugongLogTable()
{
	MUGONGLOG* pData = NULL;
	m_MugongLogTable.SetPositionHead();
	while( pData = m_MugongLogTable.GetData() )
		delete pData;
	m_MugongLogTable.RemoveAll();
}

void CLogTotalPage::ReleaseMugongExpLogTable()
{
	MUGONGEXPLOG* pData = NULL;
	m_MugongExpLogTable.SetPositionHead();
	while( pData = m_MugongExpLogTable.GetData() )
		delete pData;
	m_MugongExpLogTable.RemoveAll();
}

void CLogTotalPage::ReleaseMoneyLogTable()
{
	MONEYLOG* pData = NULL;
	m_MoneyLogTable.SetPositionHead();
	while( pData = m_MoneyLogTable.GetData() )
		delete pData;
	m_MoneyLogTable.RemoveAll();
}

void CLogTotalPage::ReleaseMoneyWrongLogTable()
{
	MONEYWRONGLOG* pData = NULL;
	m_MoneyWrongLogTable.SetPositionHead();
	while( pData = m_MoneyWrongLogTable.GetData() )
		delete pData;
	m_MoneyWrongLogTable.RemoveAll();
}

void CLogTotalPage::ReleaseAbilityLogTable()
{
	ABILITYLOG* pData = NULL;
	m_AbilityLogTable.SetPositionHead();
	while( pData = m_AbilityLogTable.GetData() )
		delete pData;
	m_AbilityLogTable.RemoveAll();
}

void CLogTotalPage::InitListControl( DWORD dwKind )
{
	// Delete all of the columns.
	int i = 0;
	int nColumnCount = m_lcTotal.GetHeaderCtrl()->GetItemCount();
	for( i = 0; i < nColumnCount; ++i )
		m_lcTotal.DeleteColumn( 0 );
	m_lcTotal.DeleteAllItems();

	switch( dwKind )
	{
	case eTotalLogKind_Character:
		{
			char* tcolumn[9] = { "LogIdx", "CharIdx", "Level", "Physique", "Agility", "Strength", "Heart", "Point", "LogDate" };
			int tcolumnsize[9] = { 80, 80, 80, 80, 80, 80, 80, 50, 120 };

			// listctrl column 汲沥
			LV_COLUMN lvcolumn;
			lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
			lvcolumn.fmt = LVCFMT_CENTER;
			for( i = 0; i < 9; ++i )
			{
				lvcolumn.iSubItem = i;
				lvcolumn.cx = tcolumnsize[i];
				lvcolumn.pszText = tcolumn[i];
				m_lcTotal.InsertColumn( i, &lvcolumn );
			}
		}
		break;
	case eTotalLogKind_ExpPoint:
		{
			char* tcolumn[9] = { "LogIdx", "CharIdx", "Level", "ChangeValue", "KillerKind", "KillerIdx", "Exp", "AbilityPoint", "LogDate" };
			int tcolumnsize[9] = { 80, 50, 50, 50, 80, 80, 50, 50, 120 };

			// listctrl column 汲沥
			LV_COLUMN lvcolumn;
			lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
			lvcolumn.fmt = LVCFMT_CENTER;
			for( i = 0; i < 9; ++i )
			{
				lvcolumn.iSubItem = i;
				lvcolumn.cx = tcolumnsize[i];
				lvcolumn.pszText = tcolumn[i];
				m_lcTotal.InsertColumn( i, &lvcolumn );
			}
		}
		break;
	case eTotalLogKind_Mugong:
		{
			char* tcolumn[8] = { "LogIdx", "LogType", "CharIdx", "SkillIdx", "SkillDBIdx", "Level", "Exp", "LogDate" };
			int tcolumnsize[8] = { 80, 50, 80, 50, 80, 50, 50, 120 };

			// listctrl column 汲沥
			LV_COLUMN lvcolumn;
			lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
			lvcolumn.fmt = LVCFMT_CENTER;
			for( i = 0; i < 8; ++i )
			{
				lvcolumn.iSubItem = i;
				lvcolumn.cx = tcolumnsize[i];
				lvcolumn.pszText = tcolumn[i];
				m_lcTotal.InsertColumn( i, &lvcolumn );
			}
		}
		break;
	case eTotalLogKind_MugongExp:
		{
			char* tcolumn[9] = { "LogIdx", "CharIdx", "ChangeValue", "SkillIdx", "SkillDBIdx", "Level", "Exp", "Position", "LogDate" };
			int tcolumnsize[9] = { 50, 50, 50, 50, 80, 50, 50, 50, 120 };

			// listctrl column 汲沥
			LV_COLUMN lvcolumn;
			lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
			lvcolumn.fmt = LVCFMT_CENTER;
			for( i = 0; i < 9; ++i )
			{
				lvcolumn.iSubItem = i;
				lvcolumn.cx = tcolumnsize[i];
				lvcolumn.pszText = tcolumn[i];
				m_lcTotal.InsertColumn( i, &lvcolumn );
			}
		}
		break;
	case eTotalLogKind_Money:
		{
			char* tcolumn[7] = { "LogIdx", "CharIdx", "ChangeValue", "InvenMoney", "TargetIdx", "TargetMoney", "LogDate" };
			int tcolumnsize[7] = { 50, 50, 50, 80, 50, 80, 120 };

			// listctrl column 汲沥
			LV_COLUMN lvcolumn;
			lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
			lvcolumn.fmt = LVCFMT_CENTER;
			for( i = 0; i < 7; ++i )
			{
				lvcolumn.iSubItem = i;
				lvcolumn.cx = tcolumnsize[i];
				lvcolumn.pszText = tcolumn[i];
				m_lcTotal.InsertColumn( i, &lvcolumn );
			}
		}
		break;
	case eTotalLogKind_MoneyWrong:
		{
			char* tcolumn[7] = { "LogIdx", "CharIdx", "ChangeValue", "TotalMoney", "WareMoney", "TargetIdx", "LogDate" };
			int tcolumnsize[7] = { 50, 50, 50, 80, 80, 80, 120 };

			// listctrl column 汲沥
			LV_COLUMN lvcolumn;
			lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
			lvcolumn.fmt = LVCFMT_CENTER;
			for( i = 0; i < 7; ++i )
			{
				lvcolumn.iSubItem = i;
				lvcolumn.cx = tcolumnsize[i];
				lvcolumn.pszText = tcolumn[i];
				m_lcTotal.InsertColumn( i, &lvcolumn );
			}
		}
		break;
	case eTotalLogKind_Ability:
		{
			char* tcolumn[7] = { "LogIdx", "CharIdx", "AbilityIdx", "AbilityLevelTo", "AbilityExpFrom", "AbilityExpTo", "LogDate" };
			int tcolumnsize[7] = { 50, 50, 50, 80, 80, 80, 120 };

			// listctrl column 汲沥
			LV_COLUMN lvcolumn;
			lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
			lvcolumn.fmt = LVCFMT_CENTER;
			for( i = 0; i < 7; ++i )
			{
				lvcolumn.iSubItem = i;
				lvcolumn.cx = tcolumnsize[i];
				lvcolumn.pszText = tcolumn[i];
				m_lcTotal.InsertColumn( i, &lvcolumn );
			}
		}
		break;
	}
	// style
	DWORD dwExStyle = m_lcTotal.GetExtendedStyle();
	dwExStyle |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT;
	m_lcTotal.SetExtendedStyle( dwExStyle );
}

void CLogTotalPage::UpdateListControl( DWORD dwKind )
{
	m_lcTotal.DeleteAllItems();

	char temp[256];	
	LV_ITEM lvitem;

	switch( dwKind )
	{
	case eTotalLogKind_Character:
		{
			CHARACTERLOG* pData = NULL;
			m_CharacterLogTable.SetPositionHead();
			while( pData = m_CharacterLogTable.GetData() )
			{
				lvitem.iItem = m_lcTotal.GetItemCount();	// 青
				
				lvitem.mask = LVIF_TEXT;
				lvitem.stateMask = LVIS_SELECTED;
				lvitem.state = INDEXTOSTATEIMAGEMASK(1);
				lvitem.iSubItem = 0;	
				lvitem.pszText = itoa( pData->dwLogIdx, temp, 10 );
				
				m_lcTotal.InsertItem( &lvitem );
				m_lcTotal.SetItemText( lvitem.iItem, 1, itoa( pData->dwChrIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 2, itoa( pData->dwGrade, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 3, itoa( pData->dwGengoal, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 4, itoa( pData->dwDex, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwStrength, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 6, itoa( pData->dwSimmak, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 7, itoa( pData->dwPoint, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 8, pData->sLogDate );
			}
		}
		break;
	case eTotalLogKind_ExpPoint:
		{
			EXPPOINTLOG* pData = NULL;
			m_ExpPointLogTable.SetPositionHead();
			while( pData = m_ExpPointLogTable.GetData() )
			{
				lvitem.iItem = m_lcTotal.GetItemCount();	// 青
				
				lvitem.mask = LVIF_TEXT;
				lvitem.stateMask = LVIS_SELECTED;
				lvitem.state = INDEXTOSTATEIMAGEMASK(1);
				lvitem.iSubItem = 0;	
				lvitem.pszText = itoa( pData->dwLogIdx, temp, 10 );
				
				m_lcTotal.InsertItem( &lvitem );
				if( pData->dwKillerIdx > 0 )
				{
					m_lcTotal.SetItemText( lvitem.iItem, 1, itoa( pData->dwChrIdx, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 2, itoa( pData->dwGrade, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 3, itoa( pData->dwChangeValue, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 4, itoa( pData->dwKillerKind, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwKillerIdx, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 6, itoa( pData->dwExpPoint, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 7, itoa( pData->dwAbilPoint, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 8, pData->sLogDate );
				}
				else
				{
					m_lcTotal.SetItemText( lvitem.iItem, 1, itoa( pData->dwChrIdx, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 2, itoa( pData->dwGrade, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 3, itoa( pData->dwChangeValue, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 4, GetMonsterName( pData->dwKillerKind, temp ) );
					m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwKillerIdx, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 6, itoa( pData->dwExpPoint, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 7, itoa( pData->dwAbilPoint, temp, 10 ) );
					m_lcTotal.SetItemText( lvitem.iItem, 8, pData->sLogDate );
				}
			}
		}
		break;
	case eTotalLogKind_Mugong:
		{
			MUGONGLOG* pData = NULL;
			m_MugongLogTable.SetPositionHead();
			while( pData = m_MugongLogTable.GetData() )
			{
				lvitem.iItem = m_lcTotal.GetItemCount();	// 青
				
				lvitem.mask = LVIF_TEXT;
				lvitem.stateMask = LVIS_SELECTED;
				lvitem.state = INDEXTOSTATEIMAGEMASK(1);
				lvitem.iSubItem = 0;	
				lvitem.pszText = itoa( pData->dwLogIdx, temp, 10 );
				
				m_lcTotal.InsertItem( &lvitem );
				m_lcTotal.SetItemText( lvitem.iItem, 1, GetSkillLogType( pData->dwLogType, temp ) );
				m_lcTotal.SetItemText( lvitem.iItem, 2, itoa( pData->dwChrIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 3, GetSkillName( pData->dwSkillIdx, temp ) );
				m_lcTotal.SetItemText( lvitem.iItem, 4, itoa( pData->dwSkillDBIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwSkillLevel, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 6, itoa( pData->dwSkillExp, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 7, pData->sLogDate );
			}
		}
		break;
	case eTotalLogKind_MugongExp:
		{
			MUGONGEXPLOG* pData = NULL;
			m_MugongExpLogTable.SetPositionHead();
			while( pData = m_MugongExpLogTable.GetData() )
			{
				lvitem.iItem = m_lcTotal.GetItemCount();	// 青
				
				lvitem.mask = LVIF_TEXT;

⌨️ 快捷键说明

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