📄 dlgcal.cpp
字号:
// DlgCal.cpp : implementation file
//
#include "stdafx.h"
#include "comtest.h"
#include "DlgCal.h"
#include "ComTestDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgCal dialog
CDlgCal::CDlgCal(CWnd* pParent /*=NULL*/)
: CDialog(CDlgCal::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgCal)
m_txt = _T("");
m_value = _T("");
//}}AFX_DATA_INIT
}
void CDlgCal::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgCal)
DDX_Text(pDX, IDC_DATA, m_txt);
DDX_Text(pDX, IDC_VALUE, m_value);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgCal, CDialog)
//{{AFX_MSG_MAP(CDlgCal)
ON_BN_CLICKED(IDC_BTN_CAL, OnBtnCal)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgCal message handlers
void CDlgCal::OnOK()
{
DestroyWindow();
// CDialog::OnOK();
}
void CDlgCal::PostNcDestroy()
{
CDialog::PostNcDestroy();
delete this;
}
BOOL CDlgCal::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
((CComboBox*)(GetDlgItem(IDC_COMB_TYPE)))->SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgCal::OnBtnCal()
{
UpdateData();
//得到空间
int len=m_txt.GetLength();
if(len==0) return;
char* buf =new char[len+1];
strcpy(buf,m_txt.operator LPCTSTR());
len=CComTestDlg::ToHex(buf);
if(len==0){
delete [] buf;
return;
}
PBYTE pb=PBYTE(buf);
//得到校验方式
int type=((CComboBox*)(GetDlgItem(IDC_COMB_TYPE)))->GetCurSel();
switch(type){
case 0:{//求和校验
BYTE t=0;
for(int i=0;i<len;i++) t+=pb[i];
m_value.Format("%x",t);
break;}
case 1:{//求异或校验
BYTE t=pb[0];
for(int i=1;i<len;i++) t^=pb[i];
m_value.Format("%x",t);
break;}
case 2:{//求CRC16校验
WORD t=CRC16(pb,len);
m_value.Format("高位在前,低位在后:%x %x",HIBYTE(t),LOBYTE(t));
break;}
}
delete [] buf;
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -