284 lines
7.4 KiB
C++
284 lines
7.4 KiB
C++
|
|
#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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|