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