Files
wnmj/Servers/服务器组件/模块管理/MatchListControl.cpp

284 lines
7.4 KiB
C++
Raw Normal View History

2026-02-13 14:34:15 +08:00
#include "StdAfx.h"
#include "MatchListControl.h"
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CMatchListControl::CMatchListControl()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CMatchListControl::~CMatchListControl()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
VOID CMatchListControl::InitListControl()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT nColIndex=0;
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
InsertColumn(nColIndex++,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),LVCFMT_LEFT,90);
InsertColumn(nColIndex++,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),LVCFMT_LEFT,90);
InsertColumn(nColIndex++,TEXT("<EFBFBD>۷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),LVCFMT_CENTER,80);
InsertColumn(nColIndex++,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),LVCFMT_CENTER,60);
InsertColumn(nColIndex++,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),LVCFMT_CENTER,60);
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT CMatchListControl::SortListItemData(LPARAM lParam1, LPARAM lParam2, WORD wColumnIndex)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagGameMatchOption * pGameMatchOption1=(tagGameMatchOption *)lParam1;
tagGameMatchOption * pGameMatchOption2=(tagGameMatchOption *)lParam2;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
switch (wColumnIndex)
{
case 0: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return lstrcmp(pGameMatchOption1->szMatchName,pGameMatchOption2->szMatchName);
}
case 1: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return pGameMatchOption1->cbMatchType>pGameMatchOption2->cbMatchType?SORT_POSITION_AFTER:SORT_POSITION_FRONT;
}
//case 1: //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
// {
// //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
// CTime StartTime1(pGameMatchOption1->MatchStartTime);
// CTime StartTime2(pGameMatchOption2->MatchStartTime);
// return StartTime1>StartTime2?SORT_POSITION_AFTER:SORT_POSITION_FRONT;;
// }
//case 2: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
// CTime EndTime1(pGameMatchOption1->MatchEndTime);
// CTime EndTime2(pGameMatchOption2->MatchEndTime);
// return EndTime1>EndTime2?SORT_POSITION_AFTER:SORT_POSITION_FRONT;;
// }
case 2: //<2F>۷<EFBFBD><DBB7><EFBFBD><EFBFBD><EFBFBD>
{
return pGameMatchOption1->cbMatchFeeType<pGameMatchOption2->cbMatchFeeType?SORT_POSITION_AFTER:SORT_POSITION_FRONT;
}
case 3: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return pGameMatchOption1->lMatchFee>pGameMatchOption2->lMatchFee?SORT_POSITION_AFTER:SORT_POSITION_FRONT;
}
case 4: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return pGameMatchOption1->cbMemberOrder>pGameMatchOption2->cbMemberOrder?SORT_POSITION_AFTER:SORT_POSITION_FRONT;
}
//case 6: //<2F><>̭<EFBFBD><CCAD><EFBFBD><EFBFBD>
// {
// return pGameMatchOption1->lMatchCullScore>pGameMatchOption2->lMatchCullScore?SORT_POSITION_AFTER:SORT_POSITION_FRONT;
// }
//case 7: //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
// {
// return pGameMatchOption1->wMatchPlayCount>pGameMatchOption2->wMatchPlayCount?SORT_POSITION_AFTER:SORT_POSITION_FRONT;
// }
//case 8: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// return lstrcmp(pGameMatchOption1->szMatchAwardContent,pGameMatchOption2->szMatchAwardContent);
// }
//case 9: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// return lstrcmp(pGameMatchOption1->szMatchContent,pGameMatchOption2->szMatchContent);
// }
}
return 0;
}
//<2F><>ȡ<EFBFBD><C8A1>ɫ
VOID CMatchListControl::GetListItemColor(LPARAM lItemParam, UINT uItemStatus, tagListItemColor & ListItemColor)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(lItemParam!=NULL);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
ListItemColor.rcBackColor=(uItemStatus&ODS_SELECTED)?RGB(0,0,128):CR_NORMAL_BK;
ListItemColor.rcTextColor=(uItemStatus&ODS_SELECTED)?RGB(255,255,255):RGB(0,0,0);
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
bool CMatchListControl::InsertMatchOption(tagGameMatchOption * pGameMatchOption)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LVFINDINFO FindInfo;
ZeroMemory(&FindInfo,sizeof(FindInfo));
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
FindInfo.flags=LVFI_PARAM;
FindInfo.lParam=(LPARAM)pGameMatchOption;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
INT nInsertItem=FindItem(&FindInfo);
if (nInsertItem!=LB_ERR) return true;
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
for (WORD i=0;i<m_ListHeaderCtrl.GetItemCount();i++)
{
if (i==0)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT nIndex=GetInsertIndex(pGameMatchOption);
LPCTSTR pszDescribe=GetDescribeString(pGameMatchOption,i);
nInsertItem=InsertItem(LVIF_TEXT|LVIF_PARAM,nIndex,pszDescribe,0,0,0,(LPARAM)pGameMatchOption);
}
else
{
//<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
SetItem(nInsertItem,i,LVIF_TEXT,GetDescribeString(pGameMatchOption,i),0,0,0,0);
}
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD CMatchListControl::GetInsertIndex(tagGameMatchOption * pGameMatchOption)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT nItemCount=GetItemCount();
tagGameMatchOption * pGameMatchTemp=NULL;
//<2F><>ȡλ<C8A1><CEBB>
for (INT i=0;i<nItemCount;i++)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
pGameMatchTemp=(tagGameMatchOption *)GetItemData(i);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (lstrcmp(pGameMatchOption->szMatchName,pGameMatchTemp->szMatchName)<0)
{
return i;
}
}
return nItemCount;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
LPCTSTR CMatchListControl::GetDescribeString(tagGameMatchOption * pGameMatchOption, WORD wColumnIndex)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static TCHAR szDescribe[128]=TEXT("");
//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
switch (wColumnIndex)
{
case 0: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return pGameMatchOption->szMatchName;
}
case 1: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//LPCTSTR pszMatchType[] = {TEXT("<22><>ʱ<EFBFBD><CAB1>"),TEXT("<22><>ʱ<EFBFBD><CAB1>")};
LPCTSTR pszMatchType[] = { TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), TEXT("<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>") };
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
if(pGameMatchOption->cbMatchType<CountArray(pszMatchType))
{
_sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("%s"),pszMatchType[pGameMatchOption->cbMatchType]);
}
return szDescribe;
}
case 2: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(pGameMatchOption->cbMatchFeeType==MATCH_FEE_TYPE_GOLD)
{
_sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
}
else if(pGameMatchOption->cbMatchFeeType==MATCH_FEE_TYPE_MEDAL)
{
_sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
}
return szDescribe;
}
case 3: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
_sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("%d"),pGameMatchOption->lMatchFee);
return szDescribe;
}
case 4: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LPCTSTR pszMemberOrder[] = {TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("VIP<EFBFBD><EFBFBD>Ա"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա")};
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
if(pGameMatchOption->cbMemberOrder<CountArray(pszMemberOrder))
{
_sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("%s"),pszMemberOrder[pGameMatchOption->cbMemberOrder]);
}
return szDescribe;
}
//case 1: //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
// {
// CTime StartTime= CTime(pGameMatchOption->MatchStartTime);
// lstrcpyn(szDescribe,StartTime.Format(TEXT("%Y-%m-%d %H:%M:%S")),CountArray(szDescribe));
// return szDescribe;
// }
//case 2: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// CTime EndTime= CTime(pGameMatchOption->MatchEndTime);
// lstrcpyn(szDescribe,EndTime.Format(TEXT("%Y-%m-%d %H:%M:%S")),CountArray(szDescribe));
// return szDescribe;
// }
//case 3: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// if(pGameMatchOption->cbMatchFeeType==MATCH_FEE_TYPE_GOLD)
// {
// _sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("<22><><EFBFBD><EFBFBD>"));
// }
// else if(pGameMatchOption->cbMatchFeeType==MATCH_FEE_TYPE_MEDAL)
// {
// _sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("<22><><EFBFBD><EFBFBD>"));
// }
// return szDescribe;
// }
//case 4: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// _sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("%d"),pGameMatchOption->lMatchFee);
// return szDescribe;
// }
//case 5: //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
// {
// _sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("%d"),pGameMatchOption->lMatchInitScore);
// return szDescribe;
// }
//case 6: //<2F><>̭<EFBFBD><CCAD><EFBFBD><EFBFBD>
// {
// _sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("%d"),pGameMatchOption->lMatchCullScore);
// return szDescribe;
// }
//case 7: //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
// {
// _sntprintf_s(szDescribe,CountArray(szDescribe),TEXT("%d"),pGameMatchOption->wMatchPlayCount);
// return szDescribe;
// }
//case 8: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// return pGameMatchOption->szMatchAwardContent;
// }
//case 9: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// return pGameMatchOption->szMatchContent;
// }
}
return NULL;
}
//////////////////////////////////////////////////////////////////////////////////