📄 flocdlg.cpp
字号:
// FlocDlg.cpp : implementation file
//
#include "stdafx.h"
#include "LandSoft.h"
#include "FlocDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFlocDlg dialog
CFlocDlg::CFlocDlg(CWnd* pParent /*=NULL*/,CString minmax)
: CDialog(CFlocDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFlocDlg)
m_nSlipNum = 0;
m_FlocResult = _T("");
m_nLong = 0;
m_MaxMin = minmax;
//}}AFX_DATA_INIT
}
void CFlocDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFlocDlg)
DDX_Control(pDX, IDC_FLOCRESULT, m_FlocEdit);
DDX_Control(pDX, IDC_EDIT_LONG, m_EditLong);
DDX_Text(pDX, IDC_SLIPNUMBER, m_nSlipNum);
DDX_Text(pDX, IDC_FLOCRESULT, m_FlocResult);
DDX_Text(pDX, IDC_EDIT_LONG, m_nLong);
DDX_Text(pDX, IDC_STATIC_MINMAX, m_MaxMin);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFlocDlg, CDialog)
//{{AFX_MSG_MAP(CFlocDlg)
ON_BN_CLICKED(IDC_RADIO_SAME, OnRadioSame)
ON_BN_CLICKED(IDC_RADIO_NOT, OnRadioNotSame)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFlocDlg message handlers
void CFlocDlg::OnRadioSame()
{
UpdateData(TRUE);
m_FlocResult="";
UpdateData(FALSE);
m_EditLong.SetReadOnly(FALSE);
m_FlocEdit.SetReadOnly(TRUE);
m_bSame=TRUE;
}
void CFlocDlg::OnRadioNotSame()
{
UpdateData(TRUE);
m_nLong=0;
UpdateData(FALSE);
m_EditLong.SetReadOnly(TRUE);
m_FlocEdit.SetReadOnly(FALSE);
m_bSame=FALSE;
}
void CFlocDlg::OnOK()
{
UpdateData(TRUE);
if(m_nSlipNum<2)
{
AfxMessageBox("分段数应大于 1 , 请重新输入!",MB_OK,NULL);
return;
}
if(!m_bSame)
{
CArray <CString,CString> result;
result.SetSize(m_nSlipNum-1);
UINT j=0;
m_FlocResult.TrimLeft();
for(int i=0;i<m_FlocResult.GetLength();i++)
{
char tmp=m_FlocResult.GetAt(i);
if(tmp>47&&tmp<58)
{
result[j]+=tmp;
continue;
}
else if(tmp==32)
{
if(m_FlocResult.GetAt(i-1)!=32)
{
if(j<(m_nSlipNum-2))
j++;
else
break;
}
continue;
}
else
{
AfxMessageBox("你输入了非法字符,请重新输入!",MB_OK,NULL);
return;
}
}
if(j<m_nSlipNum-2)
{
CString error;
error.Format("你输入的上界的数量与分段数不符,请重新输入 %d 个上界值!",
m_nSlipNum-1);
AfxMessageBox(error,MB_OK,NULL);
return;
}
m_Slips=(long*)malloc(sizeof(long)*m_nSlipNum);
for(UINT k=0;k<m_nSlipNum-1;k++)
{
m_Slips[k]=atol(result[k]);
if(!m_Slips[k])
{
AfxMessageBox("你输入的上界值非法,请重新输入!",MB_OK,NULL);
return;
}
else if(k>0&&m_Slips[k]<m_Slips[k-1])
{
AfxMessageBox("你输入的上界值非法,请重新输入!",MB_OK,NULL);
return;
}
}
}
else
{
if(m_nLong==0)
{
AfxMessageBox("请输入每段的长度!",MB_OK,NULL);
return;
}
else
{
m_Slips=(long *)malloc(sizeof(long)*m_nSlipNum);
for(UINT l=1;l<m_nSlipNum;l++)
m_Slips[l-1]=l*m_nLong;
}
}
CString message,tmpstr;
message.Format("您的谱分析将有 %d 段, 各分段如下所示:\r\n\r\n",m_nSlipNum);
tmpstr.Format(" 0 ~ %ld , ",m_Slips[0]);
message+=tmpstr;
for(UINT m=1;m<m_nSlipNum-1;m++)
{
tmpstr.Format(" %ld ~ %ld , ",m_Slips[m-1]+1,m_Slips[m]);
message+=tmpstr;
if(!(m%4))
message+="\r\n";
}
tmpstr.Format(" %ld 以上。\r\n\r\n",m_Slips[m_nSlipNum-2]);
message+=tmpstr;
message+="是否确定?";
int what=AfxMessageBox(message,MB_OKCANCEL,NULL);
if(what!=IDOK)
return;
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -