📄 resultdlg.cpp
字号:
// ResultDlg.cpp : implementation file
//
#include "stdafx.h"
#include "rain.h"
#include "raincom.h"
#include "ResultDlg.h"
#include "raindoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CRainDoc *PDocument;
/////////////////////////////////////////////////////////////////////////////
// CResultDlg dialog
CResultDlg::CResultDlg(CWnd* pParent)
: CDialog(CResultDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CResultDlg)
//}}AFX_DATA_INIT
}
void CResultDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CResultDlg)
DDX_Control(pDX, IDC_LIST_RESULT, m_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CResultDlg, CDialog)
//{{AFX_MSG_MAP(CResultDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CResultDlg message handlers
BOOL CResultDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CString totalStr,rightStr,rightRate,charMinute;
int item,i,tmp;
switch(PDocument->rainType)
{
case RT_LOCAL:
totalStr.Format("%d",PDocument->getTotalStrNum());
rightStr.Format("%d",PDocument->getRightStrNum());
if(PDocument->getTotalStrNum()<=0)// check if safe
{
rightRate.Format("%d%%",0);
}
else
{
rightRate.Format("%d%%",PDocument->getRightStrNum()*100/PDocument->getTotalStrNum());
}
if(PDocument->getTotalTime()<=0)// check if safe
{
charMinute.Format("%d",0);
}
else
{
PDocument->currentSpeed=PDocument->getRightCharNum()*60/PDocument->getTotalTime();
charMinute.Format("%d",PDocument->currentSpeed);
}
m_list.InsertColumn( 0, "chars/minute",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn( 1, "user name",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn( 2, "right words",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn( 3, "total words",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn( 4, "right rate",LVCFMT_LEFT,120,-1 );
item=m_list.InsertItem(0,charMinute);
m_list.SetItemText(item,1,PDocument->localUsrName);
m_list.SetItemText(item,2,rightStr);
m_list.SetItemText(item,3,totalStr);
m_list.SetItemText(item,4,rightRate);
break;
case RT_CLIENT:
m_list.InsertColumn(0, "chars/minute",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(1, "user name",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(2, "IP address",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(3, "right words",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(4, "total words",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(5, "right rate",LVCFMT_LEFT,120,-1 );
for(i=0;i<PDocument->client.usrNumber;i++)
{
totalStr.Format("%d",PDocument->client.totalStr);
rightStr.Format("%d",PDocument->client.rightStr[i]);
if(PDocument->client.totalStr<=0)// check if safe
{
rightRate.Format("%d%%",0);
}
else
{
rightRate.Format("%d%%",PDocument->client.rightStr[i]*100/PDocument->client.totalStr);
}
if(PDocument->client.totalTime<=0)// check if safe
{
charMinute.Format("%d",0);
}
else
{
tmp=PDocument->client.rightChar[i]*60/PDocument->client.totalTime;
charMinute.Format("%d",tmp);
if(PDocument->client.allUsrID[i]==PDocument->client.usrID)
{
PDocument->currentSpeed=tmp;
}
}
item=m_list.InsertItem(0,charMinute);
m_list.SetItemText(item,1,PDocument->client.usrName[i]);
m_list.SetItemText(item,2,PDocument->client.usrIP[i]);
m_list.SetItemText(item,3,rightStr);
m_list.SetItemText(item,4,totalStr);
m_list.SetItemText(item,5,rightRate);
}
break;
case RT_SERVER:
//first fill server result
totalStr.Format("%d",PDocument->getTotalStrNum());
rightStr.Format("%d",PDocument->server.rightStr);
if(PDocument->getTotalStrNum()<=0)// check if safe
{
rightRate.Format("%d%%",0);
}
else
{
rightRate.Format("%d%%",PDocument->server.rightStr*100/PDocument->getTotalStrNum());
}
if(PDocument->getTotalTime()<=0)// check if safe
{
charMinute.Format("%d",0);
}
else
{
PDocument->currentSpeed=PDocument->server.rightChar*60/PDocument->getTotalTime();
charMinute.Format("%d",PDocument->currentSpeed);
}
m_list.InsertColumn(0, "chars/minute",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(1, "user name",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(2, "IP address",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(3, "right words",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(4, "total words",LVCFMT_LEFT,120,-1 );
m_list.InsertColumn(5, "right rate",LVCFMT_LEFT,120,-1 );
item=m_list.InsertItem(0,charMinute);
m_list.SetItemText(item,1,PDocument->localUsrName);
m_list.SetItemText(item,2,PDocument->server.myIP);
m_list.SetItemText(item,3,rightStr);
m_list.SetItemText(item,4,totalStr);
m_list.SetItemText(item,5,rightRate);
//file client results
for(i=0;i<DFT_CLIENT_NUM;i++)
{
if(PDocument->server.slaveSocket[i].getConnectState()!=CONNECTION_LOST)
{
rightStr.Format("%d",PDocument->server.slaveSocket[i].rightStr);
if(PDocument->getTotalStrNum()<=0)// check if safe
{
rightRate.Format("%d%%",0);
}
else
{
rightRate.Format("%d%%",PDocument->server.slaveSocket[i].rightStr*100/PDocument->getTotalStrNum());
}
if(PDocument->getTotalTime()<=0)// check if safe
{
charMinute.Format("%d",0);
}
else
{
charMinute.Format("%d",PDocument->server.slaveSocket[i].rightChar*60/PDocument->getTotalTime());
}
item=m_list.InsertItem(0,charMinute);
m_list.SetItemText(item,1,PDocument->server.slaveSocket[i].usrName);
m_list.SetItemText(item,2,PDocument->server.slaveSocket[i].usrIP);
m_list.SetItemText(item,3,rightStr);
m_list.SetItemText(item,4,totalStr);
m_list.SetItemText(item,5,rightRate);
}
}
break;
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -