lotteryerview.cpp

来自「《彩票专家》一个让我中了六合彩3等奖的程序。根据35选7的彩票玩法」· C++ 代码 · 共 1,811 行 · 第 1/4 页

CPP
1,811
字号
// lotteryerView.cpp : implementation of the CLotteryerView class
//

#include "stdafx.h"
#include "lotteryer.h"

#include "lotteryerDoc.h"
#include "lotteryerView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CLotteryerView

IMPLEMENT_DYNCREATE(CLotteryerView, CFormView)

BEGIN_MESSAGE_MAP(CLotteryerView, CFormView)
	//{{AFX_MSG_MAP(CLotteryerView)
	ON_EN_CHANGE(IDC_EDIT_RADIX_NO, OnChangeEditRadixNo)
	ON_WM_DESTROY()
	ON_CBN_SELCHANGE(IDC_COMBO_LIAN_HAO, OnSelchangeComboLianHao)
	ON_EN_CHANGE(IDC_EDIT_COOL_NO, OnChangeEditCoolNo)
	ON_EN_CHANGE(IDC_EDIT_FIRST_SELECT_NO, OnChangeEditFirstSelectNo)
	ON_EN_CHANGE(IDC_EDIT_HOT_NO, OnChangeEditHotNo)
	ON_EN_CHANGE(IDC_EDIT_MAX_AC, OnChangeEditMaxAc)
	ON_EN_CHANGE(IDC_EDIT_MAX_COOL_NUM, OnChangeEditMaxCoolNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_FIRST_SELECT_NUM, OnChangeEditMaxFirstSelectNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_HOT_NUM, OnChangeEditMaxHotNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_KD, OnChangeEditMaxKd)
	ON_EN_CHANGE(IDC_EDIT_MAX_LARG_NUM, OnChangeEditMaxLargNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_MID_NUM, OnChangeEditMaxMidNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_NEARSUB, OnChangeEditMaxNearsub)
	ON_EN_CHANGE(IDC_EDIT_MAX_ODD_NUM, OnChangeEditMaxOddNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_SHQ_NUM, OnChangeEditMaxShqNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_SMALL_NUM, OnChangeEditMaxSmallNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_SPECIFY_NUM, OnChangeEditMaxSpecifyNum)
	ON_EN_CHANGE(IDC_EDIT_MAX_SUM, OnChangeEditMaxSum)
	ON_EN_CHANGE(IDC_EDIT_MIN_AC, OnChangeEditMinAc)
	ON_EN_CHANGE(IDC_EDIT_MIN_COOL_NUM, OnChangeEditMinCoolNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_FIRST_SELECT_NUM, OnChangeEditMinFirstSelectNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_HOT_NUM, OnChangeEditMinHotNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_KD, OnChangeEditMinKd)
	ON_EN_CHANGE(IDC_EDIT_MIN_LARG_NUM, OnChangeEditMinLargNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_MID_NUM, OnChangeEditMinMidNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_NEARSUB, OnChangeEditMinNearsub)
	ON_EN_CHANGE(IDC_EDIT_MIN_ODD_NUM, OnChangeEditMinOddNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_SHQ_NUM, OnChangeEditMinShqNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_SMALL_NUM, OnChangeEditMinSmallNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_SPECIFY_NUM, OnChangeEditMinSpecifyNum)
	ON_EN_CHANGE(IDC_EDIT_MIN_SUM, OnChangeEditMinSum)
	ON_EN_CHANGE(IDC_EDIT_SHQNO, OnChangeEditShqno)
	ON_EN_CHANGE(IDC_EDIT_SPECIFY_NO, OnChangeEditSpecifyNo)
	ON_EN_CHANGE(IDC_EDIT_SPECIFY_NON_NO, OnChangeEditSpecifyNonNo)
	ON_EN_KILLFOCUS(IDC_EDIT_SPECIFY_NON_NO, OnKillfocusEditSpecifyNonNo)
	ON_COMMAND(ID_BC_CALC, OnBcCalc)
	ON_COMMAND(ID_VIEW_CALC_RESULT, OnViewCalcResult)
	ON_COMMAND(ID_BC_COMPRESS, OnBcCompress)
	ON_COMMAND(ID_VIEW_COMPRESS_RESULT, OnViewCompressResult)
	ON_COMMAND(ID_MENU_WBGJ_CALC, OnMenuWbgjCalc)
	ON_COMMAND(ID_MENU_WBGJ_NOTEPAD, OnMenuWbgjNotepad)
	ON_COMMAND(ID_MENU_WBGJ_Excel, OnMENUWBGJExcel)
	ON_COMMAND(ID_MENU_WBGJ_MAIL, OnMenuWbgjMail)
	ON_COMMAND(ID_MENU_WBGJ_OPENWITH, OnMenuWbgjOpenwith)
	ON_COMMAND(ID_MENU_WBGJ_WORD, OnMenuWbgjWord)
	ON_COMMAND(ID_FILE_READ_DATA, OnFileReadData)
	ON_COMMAND(ID_FILE_SAVE_DATA, OnFileSaveData)
	ON_COMMAND(ID_MENU_SET_CLEAR, OnMenuSetClear)
	ON_COMMAND(ID_BC_ANALYSE, OnBcAnalyse)
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_BUTTON_HISFILE_BROW, OnButtonHisfileBrow)
	ON_EN_CHANGE(IDC_EDIT_HISFILE, OnChangeEditHisfile)
	ON_EN_KILLFOCUS(IDC_EDIT_HISFILE, OnKillfocusEditHisfile)
	ON_EN_CHANGE(IDC_EDIT_MIN_GWSAME, OnChangeEditMinGwsame)
	ON_EN_CHANGE(IDC_EDIT_MAX_GWSAME, OnChangeEditMaxGwsame)
	ON_COMMAND(IDM_TEST, OnTest)
	ON_UPDATE_COMMAND_UI(ID_BC_COMPRESS, OnUpdateBcCompress)
	ON_UPDATE_COMMAND_UI(ID_BC_CALC, OnUpdateBcCalc)
	ON_UPDATE_COMMAND_UI(ID_VIEW_CALC_RESULT, OnUpdateViewCalcResult)
	ON_UPDATE_COMMAND_UI(ID_VIEW_COMPRESS_RESULT, OnUpdateViewCompressResult)
	ON_COMMAND(ID_MENU_STAT, OnMenuStat)
	ON_UPDATE_COMMAND_UI(ID_MENU_STAT, OnUpdateMenuStat)
	ON_COMMAND(ID_MENU_SORT, OnMenuSort)
	ON_UPDATE_COMMAND_UI(ID_MENU_SORT, OnUpdateMenuSort)
	ON_COMMAND(ID_VIEW_STAT_RESULT, OnViewStatResult)
	ON_UPDATE_COMMAND_UI(ID_VIEW_STAT_RESULT, OnUpdateViewStatResult)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLotteryerView construction/destruction

CLotteryerView::CLotteryerView()
	: CFormView(CLotteryerView::IDD)
{
	//{{AFX_DATA_INIT(CLotteryerView)
	m_csCoolNO = "";		//输入冷号
	m_csFirstSelNO = "";	//首选号码
	m_csHotNO = "";			//输入热号
	m_iMaxAC = 6;
	m_iMaxFirstSelNum = 2;	//首选号码选择个数
	m_iMaxHotNum = 2;		//热号选择数目范围
	m_iMaxKD = 34;			//跨度右边界
	m_iMaxLargNum = 3;		//大数个数范围右边界
	m_iMaxMidNum = 3;		//中数个数范围
	m_iMaxNearSub = 14;		//最大邻差范围右边界
	m_iMaxOddNum = 4;		//奇数个数范围
	m_iMaxShqNum = 2;		//可重复个数范围右边界
	m_iMaxSmallNum = 3;		//小数个数范围
	m_iMaxSpecifyNum = 0;	//指定号码个数
	m_iMaxSum = 160;		//总数和范围右边界
	m_iMinAC = 1;
	m_iMinCoolNum = 0;
	m_iMinFirstSelNum = 0;
	m_iMinHotNum = 0;
	m_iMinKD = 28;			//跨度左边界
	m_iMinLargNum = 2;		//大数个数范围左边界
	m_iMinMidNum = 2;
	m_iMinNearSub = 6;		//最大邻差范围左边界
	m_iMinOddNum = 4;
	m_iMinShqNum = 0;		//可重复个数范围左边界
	m_iMinSmallNum = 2;
	m_iMinSpecifyNum = 0;
	m_iMinSum = 100;		//总数和范围左边界
	m_csRadixNO = _T("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35");
	m_csShqNO = "";			//上期中奖号码
	m_csSpecifyNO = "";		//输入指定号码
	m_csSpecifyNonNO = _T("");
	m_iMaxCoolNum = 0;
	m_csHisFile = _T("请点右边的小按钮");
	m_iMaxGWSame = 3;		//个位相同的个数
	m_iMinGWSame = 0;
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CLotteryerView::~CLotteryerView()
{
}

void CLotteryerView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLotteryerView)
	DDX_Control(pDX, IDC_COMBO_HIS_REPEAT_NUM, m_cmbHisRepeatNum);
	DDX_Control(pDX, IDC_PROGRESS1, m_progress);
	DDX_Control(pDX, IDC_COMBO_LIAN_HAO, m_cmbLianHao);
	DDX_Text(pDX, IDC_EDIT_COOL_NO, m_csCoolNO);
	DDX_Text(pDX, IDC_EDIT_FIRST_SELECT_NO, m_csFirstSelNO);
	DDX_Text(pDX, IDC_EDIT_HOT_NO, m_csHotNO);
	DDX_Text(pDX, IDC_EDIT_MAX_AC, m_iMaxAC);
	DDX_Text(pDX, IDC_EDIT_MAX_FIRST_SELECT_NUM, m_iMaxFirstSelNum);
	DDX_Text(pDX, IDC_EDIT_MAX_HOT_NUM, m_iMaxHotNum);
	DDX_Text(pDX, IDC_EDIT_MAX_KD, m_iMaxKD);
	DDX_Text(pDX, IDC_EDIT_MAX_LARG_NUM, m_iMaxLargNum);
	DDX_Text(pDX, IDC_EDIT_MAX_MID_NUM, m_iMaxMidNum);
	DDX_Text(pDX, IDC_EDIT_MAX_NEARSUB, m_iMaxNearSub);
	DDX_Text(pDX, IDC_EDIT_MAX_ODD_NUM, m_iMaxOddNum);
	DDX_Text(pDX, IDC_EDIT_MAX_SHQ_NUM, m_iMaxShqNum);
	DDX_Text(pDX, IDC_EDIT_MAX_SMALL_NUM, m_iMaxSmallNum);
	DDX_Text(pDX, IDC_EDIT_MAX_SPECIFY_NUM, m_iMaxSpecifyNum);
	DDX_Text(pDX, IDC_EDIT_MAX_SUM, m_iMaxSum);
	DDX_Text(pDX, IDC_EDIT_MIN_AC, m_iMinAC);
	DDX_Text(pDX, IDC_EDIT_MIN_COOL_NUM, m_iMinCoolNum);
	DDX_Text(pDX, IDC_EDIT_MIN_FIRST_SELECT_NUM, m_iMinFirstSelNum);
	DDX_Text(pDX, IDC_EDIT_MIN_HOT_NUM, m_iMinHotNum);
	DDX_Text(pDX, IDC_EDIT_MIN_KD, m_iMinKD);
	DDX_Text(pDX, IDC_EDIT_MIN_LARG_NUM, m_iMinLargNum);
	DDX_Text(pDX, IDC_EDIT_MIN_MID_NUM, m_iMinMidNum);
	DDX_Text(pDX, IDC_EDIT_MIN_NEARSUB, m_iMinNearSub);
	DDX_Text(pDX, IDC_EDIT_MIN_ODD_NUM, m_iMinOddNum);
	DDX_Text(pDX, IDC_EDIT_MIN_SHQ_NUM, m_iMinShqNum);
	DDX_Text(pDX, IDC_EDIT_MIN_SMALL_NUM, m_iMinSmallNum);
	DDX_Text(pDX, IDC_EDIT_MIN_SPECIFY_NUM, m_iMinSpecifyNum);
	DDX_Text(pDX, IDC_EDIT_MIN_SUM, m_iMinSum);
	DDX_Text(pDX, IDC_EDIT_PREVIEW, m_csPreview);
	DDX_Text(pDX, IDC_EDIT_RADIX_NO, m_csRadixNO);
	DDX_Text(pDX, IDC_EDIT_SHQNO, m_csShqNO);
	DDX_Text(pDX, IDC_EDIT_SPECIFY_NO, m_csSpecifyNO);
	DDX_Text(pDX, IDC_EDIT_SPECIFY_NON_NO, m_csSpecifyNonNO);
	DDX_Text(pDX, IDC_EDIT_MAX_COOL_NUM, m_iMaxCoolNum);
	DDX_Text(pDX, IDC_EDIT_HISFILE, m_csHisFile);
	DDX_Text(pDX, IDC_EDIT_MAX_GWSAME, m_iMaxGWSame);
	DDX_Text(pDX, IDC_EDIT_MIN_GWSAME, m_iMinGWSame);
	//}}AFX_DATA_MAP
	DDX_Control(pDX, IDC_BUTTON_HISFILE_BROW, m_btnHisFileBrow);
}

BOOL CLotteryerView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CLotteryerView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
	//处理图形按钮
	m_btnHisFileBrow.SetIcon(IDI_BROWSE1,IDI_BROWSE2);
	m_btnHisFileBrow.SetTooltipText(_T("浏览..."));
	m_btnHisFileBrow.DrawTransparent(TRUE);
	m_btnHisFileBrow.SetBtnCursor(IDC_HAND);

	//创建临时目录
	//BOOL res = CreateDirectory("LotteryTemp.dat",NULL);

	pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
	good_assembled_num = 0;						//计算后组合数
	memset(specify_no,0,sizeof(specify_no));	//指定号码
	specify_num = 0;							//指定号码个数
	memset(specify_non_no,0,sizeof(specify_no));//指定不要的号码
	specify_non_no_zhushu = 0;					//指定不要号码组数
	memset(cool_no,0,sizeof(cool_no));			//冷号
	cool_num = 0;								//冷号个数
	memset(hot_no,0,sizeof(hot_no));			//热号
	hot_num = 0;								//热号个数
	memset(sh_qi_no,0,sizeof(sh_qi_no));		//上期号码
	shno_num = 0;								//上期号码个数
	memset(first_sel_no,0,sizeof(first_sel_no));//首选号码
	first_sel_num = 0;
	amount_compress_count = 0;					//压缩后的组合数
	memset(history_data,0,sizeof(history_data));//和历史奖号比较
	hisno_num = 0;
	isCanStat = FALSE;
	isCanSort = FALSE;
	isCanViewCompressRes = FALSE;
	isCanViewCalcRes = FALSE;
	isCanCompress = FALSE;
	ClickBtnSort = FALSE;
	isEnabledCalc = TRUE;
	isCanViewStatRes = FALSE;
	if (ConfigurePara("lotteryer.cfg",TRUE) == FALSE)
	{
		m_cmbLianHao.SetCurSel(14);
		m_cmbHisRepeatNum.SetCurSel(7);
		
	}
	cursor_busy = AfxGetApp()->LoadCursor(IDC_CURSOR_BUSY);
	UpdateData(FALSE);
}

/////////////////////////////////////////////////////////////////////////////
// CLotteryerView printing

BOOL CLotteryerView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CLotteryerView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CLotteryerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

void CLotteryerView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
	// TODO: add customized printing code here
}

/////////////////////////////////////////////////////////////////////////////
// CLotteryerView diagnostics

#ifdef _DEBUG
void CLotteryerView::AssertValid() const
{
	CFormView::AssertValid();
}

void CLotteryerView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CLotteryerDoc* CLotteryerView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLotteryerDoc)));
	return (CLotteryerDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CLotteryerView message handlers

/**************************************************************
* 处理程序中输入的参数配置(保存或读入)
**************************************************************/
BOOL CLotteryerView::ConfigurePara(char *file_name, BOOL isRead)
{
	FILE *fp;
	char buf[512];
	char str_buf[KILO];
	int count;
	int cur_pos = 0;
	int i_tmp = 0;
	memset(buf,0xff,sizeof(buf));
	memset(str_buf,0,sizeof(str_buf));
	if (isRead == TRUE)	//读入参数信息
	{
	
		if ((fp=fopen(file_name,"rb"))==NULL)
		{
			sprintf(str_buf,"不能打开“ %s ”文件",file_name);
			AfxMessageBox(str_buf);
			return FALSE;
		}
		count = fread(buf,sizeof(char),sizeof(buf),fp);
		if (lottery.isErrAssembled(buf,MIN_RADIX) == TRUE)
		{
			sprintf(str_buf,"“ %s ”文件格式错误",file_name);
			AfxMessageBox(str_buf);
			fclose(fp);
			return FALSE;
		}
		fclose(fp);
		lottery.CfgDataToStr(buf+cur_pos,str_buf,64);	//基号
		m_csRadixNO = str_buf;
		cur_pos += 64;
		lottery.CfgDataToStr(buf+cur_pos,str_buf,32);	//指定要选号
		m_csSpecifyNO = str_buf;
		cur_pos += 32;
		m_iMinSpecifyNum = (unsigned char)*(buf+cur_pos);//指定要选号个数
		cur_pos += 1;
		m_iMaxSpecifyNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		strcpy(str_buf,buf+cur_pos);					//指定排除号
		m_csSpecifyNonNO = str_buf;
		cur_pos += 128;
		lottery.CfgDataToStr(buf+cur_pos,str_buf,16);	//上期号码
		m_csShqNO = str_buf;
		cur_pos += 16;
		m_iMinShqNum = (unsigned char)*(buf+cur_pos);	//上期号码选择个数
		cur_pos += 1;
		m_iMaxShqNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		lottery.CfgDataToStr(buf+cur_pos,str_buf,16);	//冷号
		m_csCoolNO = str_buf;
		cur_pos += 16;
		m_iMinCoolNum = (unsigned char)*(buf+cur_pos);	//冷号选择个数
		cur_pos += 1;
		m_iMaxCoolNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		lottery.CfgDataToStr(buf+cur_pos,str_buf,16);	//热号
		m_csHotNO = str_buf;
		cur_pos += 16;
		m_iMinHotNum = (unsigned char)*(buf+cur_pos);	//热号选择个数
		cur_pos += 1;
		m_iMaxHotNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMinOddNum = (unsigned char)*(buf+cur_pos);		//奇数个数
		cur_pos += 1;
		m_iMaxOddNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_cmbLianHao.SetCurSel((unsigned char)*(buf+cur_pos));	//连号个数
		cur_pos += 1;
		m_iMinLargNum = (unsigned char)*(buf+cur_pos);				//大数个数
		cur_pos += 1;
		m_iMaxLargNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMinKD  = (unsigned char)*(buf+cur_pos);				//跨度
		cur_pos += 1;
		m_iMaxKD  = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMinMidNum = (unsigned char)*(buf+cur_pos);			//中数个数
		cur_pos += 1;
		m_iMaxMidNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMinSum = (unsigned char)*(buf+cur_pos);				//总数和
		cur_pos += 1;
		m_iMaxSum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMinSmallNum = (unsigned char)*(buf+cur_pos);		//小数个数
		cur_pos += 1;
		m_iMaxSmallNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMinNearSub = (unsigned char)*(buf+cur_pos);			//最大邻差
		cur_pos += 1;
		m_iMaxNearSub = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		lottery.CfgDataToStr(buf+cur_pos,str_buf,16);	//首选号码
		m_csFirstSelNO = str_buf;
		cur_pos += 16;
		m_iMinFirstSelNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMaxFirstSelNum = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		m_iMinAC = (unsigned char)*(buf+cur_pos);		//AC值
		cur_pos += 1;
		m_iMaxAC = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		i_tmp = (unsigned char)*(buf+cur_pos);			//历史奖号文件路径
		if (lottery.MyisAlpha(i_tmp) == FALSE) //非字母
		{
			m_csHisFile = "请点右边的小按钮";
		}
		else
		{
			strcpy(str_buf,buf+cur_pos);
			m_csHisFile = str_buf;
			hisno_num = lottery.ReadLotteryFile(str_buf,history_data);
			if (hisno_num <= 0)
			{
				m_csHisFile = "请点右边的小按钮";
			}
		}
		cur_pos += 128;
		m_cmbHisRepeatNum.SetCurSel((unsigned char)*(buf+cur_pos));	//和历史奖号最多相同个数
		cur_pos += 1;
		m_iMaxGWSame = (unsigned char)*(buf+cur_pos);							//个位相同的个数
		cur_pos += 1;
		m_iMinGWSame = (unsigned char)*(buf+cur_pos);
		cur_pos += 1;
		//刷新改变的数据
		UpdateData(FALSE);
		OnChangeEditSpecifyNo();
		OnChangeEditSpecifyNonNo();
		OnChangeEditCoolNo();
		OnChangeEditHotNo();
		OnChangeEditRadixNo();
		OnChangeEditShqno();
		OnChangeEditFirstSelectNo();
		OnSelchangeComboLianHao();
	}
	else
	{
		lottery.GetInputNum(m_csRadixNO.GetBuffer(NULL),buf+cur_pos,FALSE);		//基数
		cur_pos += 64;
		lottery.GetInputNum(m_csSpecifyNO.GetBuffer(NULL),buf+cur_pos,FALSE);	//指定要选号
		cur_pos += 32;
		*(buf+cur_pos) = m_iMinSpecifyNum;								//指定要选号个数
		cur_pos += 1;
		*(buf+cur_pos) = m_iMaxSpecifyNum;
		cur_pos += 1;
		memcpy(buf+cur_pos,m_csSpecifyNonNO.GetBuffer(NULL),			//指定排除号
			m_csSpecifyNonNO.GetLength());
		*(buf+cur_pos+m_csSpecifyNonNO.GetLength()) = 0;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?