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 + -
显示快捷键?