📄 statdlg.cpp
字号:
GetSingleRedBallTimes( 16, csarRedBall );
break;
case 17:
GetSingleRedBallTimes( 17, csarRedBall );
break;
case 18:
GetSingleRedBallTimes( 18, csarRedBall );
break;
case 19:
GetSingleRedBallTimes( 19, csarRedBall );
break;
case 20:
GetSingleRedBallTimes( 20, csarRedBall );
break;
case 21:
GetSingleRedBallTimes( 21, csarRedBall );
break;
case 22:
GetSingleRedBallTimes( 22, csarRedBall );
break;
case 23:
GetSingleRedBallTimes( 23, csarRedBall );
break;
case 24:
GetSingleRedBallTimes( 24, csarRedBall );
break;
case 25:
GetSingleRedBallTimes( 25, csarRedBall );
break;
case 26:
GetSingleRedBallTimes( 26, csarRedBall );
break;
case 27:
GetSingleRedBallTimes( 27, csarRedBall );
break;
case 28:
GetSingleRedBallTimes( 28, csarRedBall );
break;
case 29:
GetSingleRedBallTimes( 29, csarRedBall );
break;
case 30:
GetSingleRedBallTimes( 30, csarRedBall );
break;
case 31:
GetSingleRedBallTimes( 31, csarRedBall );
break;
case 32:
GetSingleRedBallTimes( 32, csarRedBall );
break;
case 33: // 红球33
GetSingleRedBallTimes( 33, csarRedBall );
break;
default:
break;
}
}
// 统计单个蓝球
void CStatDlg::OnButtonStatSingleBlueBall()
{
// TODO: Add your control notification handler code here
int nIndex = m_cmbBlueBall.GetCurSel();
if ( -1 == nIndex )
{
MessageBox( _T("^_^ 你还没有选择蓝球,请选择!"),
_T("友情提示"),
MB_ICONASTERISK );
return;
}
// 从RedBlueBallIni.ini文件中获得蓝球
CStringArray csarBlueBall;
GetAllBlueBall( csarBlueBall );
// 显示单个蓝球出现的次数
CString csCurSelBlueBall = _T("");
m_cmbBlueBall.GetLBText( nIndex, csCurSelBlueBall );
int nCurSelBlueBall = atoi( csCurSelBlueBall );
switch ( nCurSelBlueBall )
{
case 1: // 蓝球1
GetSingleBlueBallTimes( 1, csarBlueBall );
break;
case 2: // 蓝球2
GetSingleBlueBallTimes( 2, csarBlueBall );
break;
case 3:
GetSingleBlueBallTimes( 3, csarBlueBall );
break;
case 4:
GetSingleBlueBallTimes( 4, csarBlueBall );
break;
case 5:
GetSingleBlueBallTimes( 5, csarBlueBall );
break;
case 6:
GetSingleBlueBallTimes( 6, csarBlueBall );
break;
case 7:
GetSingleBlueBallTimes( 7, csarBlueBall );
break;
case 8:
GetSingleBlueBallTimes( 8, csarBlueBall );
break;
case 9:
GetSingleBlueBallTimes( 9, csarBlueBall );
break;
case 10:
GetSingleBlueBallTimes( 10, csarBlueBall );
break;
case 11:
GetSingleBlueBallTimes( 11, csarBlueBall );
break;
case 12:
GetSingleBlueBallTimes( 12, csarBlueBall );
break;
case 13:
GetSingleBlueBallTimes( 13, csarBlueBall );
break;
case 14:
GetSingleBlueBallTimes( 14, csarBlueBall );
break;
case 15:
GetSingleBlueBallTimes( 15, csarBlueBall );
break;
case 16: // 蓝球16
GetSingleBlueBallTimes( 16, csarBlueBall );
break;
default:
break;
}
}
// 检查是否指定了红球和蓝球
void CStatDlg::OnCheckRedBlueBall()
{
// TODO: Add your control notification handler code here
int nCurSelRedBall = m_cmbRedBall.GetCurSel();
if ( -1 == nCurSelRedBall ) // 没有选择红球
{
AfxMessageBox( _T("^_^ 你没有选择红球,请选择!") );
m_chkRedBlueBall.SetCheck( 0 );
return;
}
int nCurSelBlueBall = m_cmbBlueBall.GetCurSel();
if ( -1 == nCurSelBlueBall ) // 没有选择蓝球
{
AfxMessageBox( _T("^_^ 你没有选择蓝球,请选择!") );
m_chkRedBlueBall.SetCheck( 0 );
return;
}
GetDlgItem( IDC_BUTTON_STAT_SINGLE_RED_BALL )->EnableWindow( FALSE );
GetDlgItem( IDC_BUTTON_STAT_SINGLE_BLUE_BALL )->EnableWindow( FALSE );
}
// 统计指定的红球和蓝球
void CStatDlg::OnButtonStatSelectedRedBlueBall()
{
// TODO: Add your control notification handler code here
int nCheckStatus = m_chkRedBlueBall.GetCheck();
if ( 0 == nCheckStatus ) // 没有点击指定复选框
{
AfxMessageBox( _T("^_^ 你必须先指定才能统计!") );
return;
}
else if ( 1 == nCheckStatus )
{
OnButtonStatSingleRedBall();
OnButtonStatSingleBlueBall();
CStringArray csarIssue;
GetIssue( csarIssue );
int nCurMaxIssue = csarIssue.GetSize(); // 数组的大小
CString csCurMaxIssue = _T("");
csCurMaxIssue.Format( _T("%d"), nCurMaxIssue );
CString csRedBlueBallTip = _T("^_^截止到第");
csRedBlueBallTip += csCurMaxIssue;
csRedBlueBallTip += _T("期,");
if ( m_csRedBallTimes.IsEmpty() && (!m_csBlueBallTimes.IsEmpty()) )
{
csRedBlueBallTip += _T("红球");
csRedBlueBallTip += m_csRedBallFlag;
csRedBlueBallTip += _T("还没有出现过;");
csRedBlueBallTip += _T("蓝球");
csRedBlueBallTip += m_csBlueBallFlag;
csRedBlueBallTip += _T("出现过");
csRedBlueBallTip += m_csBlueBallTimes;
csRedBlueBallTip += _T("次。");
MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK );
}
else if ( m_csBlueBallTimes.IsEmpty() && (!m_csRedBallTimes.IsEmpty()) )
{
csRedBlueBallTip += _T("蓝球");
csRedBlueBallTip += m_csBlueBallFlag;
csRedBlueBallTip += _T("还没有出现过;");
csRedBlueBallTip += _T("红球");
csRedBlueBallTip += m_csRedBallFlag;
csRedBlueBallTip += _T("出现过");
csRedBlueBallTip += m_csRedBallTimes;
csRedBlueBallTip += _T("次。");
MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK );
}
else if ( m_csBlueBallTimes.IsEmpty() && m_csRedBallTimes.IsEmpty() )
{
csRedBlueBallTip += _T("红球");
csRedBlueBallTip += m_csRedBallFlag;
csRedBlueBallTip += _T("还没有出现过;");
csRedBlueBallTip += _T("蓝球");
csRedBlueBallTip += m_csBlueBallFlag;
csRedBlueBallTip += _T("蓝球也还没有出现过。");
MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK );
}
else
{
csRedBlueBallTip += _T("红球");
csRedBlueBallTip += m_csRedBallFlag;
csRedBlueBallTip += _T("出现过");
csRedBlueBallTip += m_csRedBallTimes;
csRedBlueBallTip += _T("次;");
csRedBlueBallTip += _T("蓝球");
csRedBlueBallTip += m_csBlueBallFlag;
csRedBlueBallTip += _T("出现过");
csRedBlueBallTip += m_csBlueBallTimes;
csRedBlueBallTip += _T("次。");
MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK );
}
}
else
{
// 这里不需要做任何事情.
}
GetDlgItem( IDC_BUTTON_STAT_SINGLE_RED_BALL )->EnableWindow( TRUE );
GetDlgItem( IDC_BUTTON_STAT_SINGLE_BLUE_BALL )->EnableWindow( TRUE );
m_chkRedBlueBall.SetCheck( 0 );
}
// 统计所有的球
void CStatDlg::OnButtonStatAllBall()
{
// TODO: Add your control notification handler code here
m_bIsAllStat = true;
// 创建excel.
COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,
VT_ERROR),vtTrue((short)TRUE),vtFalse((short)FALSE);
_Application *ExcelApp = new _Application;
ExcelApp->CreateDispatch(_T("excel.application"));
// 设置为显示
ExcelApp->SetVisible(TRUE);
// 得到WorkBooks
Workbooks ExcelBook = ExcelApp->GetWorkbooks();
Sheets ExcelSheet = ExcelBook.Add(vtOptional);
_Workbook workBook;
_Worksheet workSheet;
Range range;
workBook.AttachDispatch(ExcelApp->GetApplication());
ExcelSheet = workBook.GetSheets();
workSheet = ExcelSheet.GetItem(COleVariant((short)1));
workSheet.Activate();
Range myallrange = workSheet.GetRange(COleVariant(_T("D1")),COleVariant(_T("H1")));
myallrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myallrange.SetHorizontalAlignment(COleVariant((short)3));
myallrange.Merge(COleVariant((short)1));
CStringArray csarIssue;
GetIssue( csarIssue );
int nCurMaxIssue = csarIssue.GetSize();
CString csCurMaxIssue = _T("");
csCurMaxIssue.Format( _T("%d"), nCurMaxIssue );
CString csResultInfo = _T("截止到第");
csResultInfo += csCurMaxIssue;
csResultInfo += _T("期的统计结果");
myallrange.SetValue(COleVariant(csResultInfo));
Range myrange = workSheet.GetRange(COleVariant(_T("D2")),COleVariant(_T("D2")));
myrange.SetValue(COleVariant(_T("红球")));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
myrange.SetColumnWidth(COleVariant((short)15));
myrange = workSheet.GetRange(COleVariant(_T("E2")),COleVariant(_T("E2")));
myrange.SetValue(COleVariant(_T("出现的次数")));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
myrange.SetColumnWidth(COleVariant((short)15));
myrange = workSheet.GetRange(COleVariant(_T("F2")),COleVariant(_T("F2")));
myrange.SetValue(COleVariant(_T("蓝球")));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
myrange.SetColumnWidth(COleVariant((short)15));
myrange = workSheet.GetRange(COleVariant(_T("G2")),COleVariant(_T("G2")));
myrange.SetValue(COleVariant(_T("出现的次数")));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
myrange.SetColumnWidth(COleVariant((short)15));
myrange = workSheet.GetRange(COleVariant(_T("H2")),COleVariant(_T("H2")));
myrange.SetValue(COleVariant(_T("备注:")));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
myrange.SetColumnWidth(COleVariant((short)20));
CString csColItem = _T("");
CString csRedBallNumber = _T("");
CString csRedBallValue = _T("");
for ( int i = 3; i <= 35; i++ )
{
// 设置33个红球号
csColItem.Format(_T("D%d"),i);
Range myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
csRedBallNumber.Format( _T("%d"), i - 2 );
myrange.SetValue(COleVariant(csRedBallNumber));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
// 设置33个红球值
csColItem.Format(_T("E%d"),i);
myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
// 从RedBlueBallIni.ini中取得红球
CStringArray csarRedBallString;
GetRedBallString(csarRedBallString);
CStringArray csarRedBall;
GetAllRedBall( csarRedBallString, csarRedBall );
GetSingleRedBallTimes( i - 2, csarRedBall );
csRedBallValue = m_csRedBallTimes;
myrange.SetValue(COleVariant(csRedBallValue));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
}
CString csBlueBallNumber = _T("");
CString csBlueBallValue = _T("");
for ( int j = 3; j <= 18; j++ )
{
// 设置16个蓝球号
csColItem.Format("F%d",j);
Range myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
csBlueBallNumber.Format( _T("%d"), j - 2 );
myrange.SetValue(COleVariant(csBlueBallNumber));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
// 设置16个蓝球值
csColItem.Format(_T("G%d"),j);
myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
// 从RedBlueBallIni.ini取得蓝球值
CStringArray csarBlueBall;
GetAllBlueBall( csarBlueBall );
GetSingleBlueBallTimes( j - 2, csarBlueBall );
csBlueBallValue = m_csBlueBallTimes;
myrange.SetValue(COleVariant(csBlueBallValue));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
}
delete ExcelApp;
m_bIsAllStat = false;
}
// 检查期号
bool CStatDlg::CheckIssue()
{
UpdateData();
if ( m_csIssue.IsEmpty() ) // 期号为空
{
AfxMessageBox(_T("期号不能为空"));
GetDlgItem(IDC_EDIT_ISSUE)->SetFocus();
return false;
}
else
{
bool bIsDigit = CCommonTool::CheckDigit( m_csIssue, m_csIssue.GetLength() );
if ( !bIsDigit ) // 输入的不是数字
{
AfxMessageBox(_T("你输入的期号不是纯数字,请重新输入"));
m_csIssue = _T("");
UpdateData( FALSE );
GetDlgItem(IDC_EDIT_ISSUE)->SetFocus();
return false;
}
}
return true;
}
// 检查6个红球
bool CStatDlg::CheckSixRedBall()
{
bool bIsValidRedBall1 = CheckRedBallValidity( m_csRedBall1, IDC_EDIT_RED_BALL1 );
if ( !bIsValidRedBall1 )
{
AfxMessageBox(_T("你输入的红球1无效,请重新输入!"));
return false;
}
bool bIsValidRedBall2 = CheckRedBallValidity( m_csRedBall2, IDC_EDIT_RED_BALL2 );
if ( !bIsValidRedBall2 )
{
AfxMessageBox(_T("你输入的红球2无效,请重新输入!"));
return false;
}
bool bIsValidRedBall3 = CheckRedBallValidity( m_csRedBall3, IDC_EDIT_RED_BALL3 );
if ( !bIsValidRedBall3 )
{
AfxMessageBox(_T("你输入的红球3无效,请重新输入!"));
return false;
}
bool bIsValidRedBall4 = CheckRedBallValidity( m_csRedBall4, IDC_EDIT_RED_BALL4 );
if ( !bIsValidRedBall4 )
{
AfxMessageBox(_T("你输入的红球4无效,请重新输入!"));
return false;
}
bool bIsValidRedBall5 = CheckRedBallValidity( m_csRedBall5, IDC_EDIT_RED_BALL5 );
if ( !bIsValidRedBall5 )
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -