📄 newcomdlg.cpp
字号:
return "o";
else if(str=="EVEN偶")
return "e";
else if(str=="标记校验")
return "m";
else if(str=="空格校验")
return "s";
else
return (-1);
}
void CNewComDlg::OnInclear()
{
// TODO: Add your control notification handler code here
this->SetDlgItemText (IDC_RXD,"");
m_RXD="";
}
BEGIN_EVENTSINK_MAP(CNewComDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CNewComDlg)
ON_EVENT(CNewComDlg, IDC_MSCOMM1, 1 /* OnComm */, OnOnComm, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CNewComDlg::OnOnComm()
{
// TODO: Add your control notification handler code here
VARIANT VAR_in;
COleSafeArray SafeArray_in;
LONG k,len;
BYTE rxdata[2048],bt;
CString str,save[2];
BOOL m_IsOK=FALSE;
int bit=0,result=0,num=0;
char hex[4];
switch(m_Comm.GetCommEvent() )
{
case 2:
VAR_in=m_Comm.GetInput ();
SafeArray_in=VAR_in;
len=SafeArray_in.GetOneDimSize ();
for(k=0;k<len;k++)
SafeArray_in.GetElement (&k,rxdata+k);
if(!pdlg.m_hWnd)
{
for(k=0;k<len;k++)
{
k=0;
bt=*(char*)(rxdata+k);
if(m_CheckChar)
str.Format ("%c",bt);
else
str.Format ("%02X ",bt);
m_RXD+=str;
}
}
else
{
k=0;
bt=*(char*)(rxdata+k);
str.Format ("%02X",bt);
//////////////////////////////
if(str=="AA")
{
k++;
bt=*(char*)(rxdata+k);
str.Format ("%02X",bt);
if(str=="55")
m_IsOK=TRUE;
else
m_IsOK=FALSE;
}
else
{
m_IsOK=FALSE;
}
if(m_IsOK)
{
for(k=2;k<len-3;k++)
{
bt=*(char*)(rxdata+k);
str.Format ("02X",bt);
if(k%2==0)
save[0]=str;
else
{
save[1]=str;
save[1]+=save[0];
for(int j=0;j<4;j++)
{
hex[j]=save[1].GetAt (j);
bit=StrToDec(hex[j]);
switch (j)
{
case 0:
bit=bit*16*16*16;
break;
case 1:
bit=bit*16*16;
break;
case 2:
bit=bit*16;
break;
default:
bit=bit;
break;
}
result+=bit;
}
str.Format ("%d ", result);
m_ViewNum[num]=str;
num++;
m_res+=str;
if(k=15)
m_res+="\r\n";
CStdioFile file(m_FileName,CFile::modeCreate|CFile::modeWrite|CFile::typeText);
file.WriteString (m_res);
result=0;
}
}
}
else
{
MessageBox("m_IsOK is FALSE");
//Reserve;
for(k=0;k<len;k++)
{
bt=*(char*)(rxdata+k);
str.Format ("%02X",bt);
if(str=="AA")
break;
}
m_Comm.SetInputLen(len-k);
VAR_in=m_Comm.GetInput ();
}
pdlg.m_static1=m_ViewNum[0];
pdlg.m_static2=m_ViewNum[1];
pdlg.m_static3=m_ViewNum[2];
pdlg.m_static4=m_ViewNum[3];
pdlg.m_static5=m_ViewNum[4];
pdlg.m_static6=m_ViewNum[5];
pdlg.m_static7=m_ViewNum[6];
pdlg.m_static8=m_ViewNum[7];
}
break;
case 1:
m_status="缓冲区字符数目小于门限值...";
Beep(1000,100);
break;
case 1008:
m_status="缓冲区溢出!";
Beep(1000,100);
break;
case 1010:
m_status="缓冲区满!";
Beep(1000,100);
break;
}
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_RXD);
pEdit->LineScroll (pEdit->GetLineCount ());
UpdateData(FALSE);
}
void CNewComDlg::OnOutputSetting()
{
// TODO: Add your command handler code here
OutSetDlg dlg;
if(IDOK==dlg.DoModal ())
{
if(dlg.m_CheckAuto && dlg.m_CheckFile )
{
MessageBox("只能选择一个模式,请重新选择!");
return;
}
if(dlg.m_CheckAuto )
{
m_Time=dlg.m_time ;
m_OutputChar=dlg.m_OutputChar ;
this->SetDlgItemText (IDC_SENDMUL,"自动发送");
m_status="自动发送模式...";
}
else if (dlg.m_CheckFile )
{
this->SetDlgItemText (IDC_SENDMUL,"发送文件");
m_status="发送文件模式...";
}
else
{
this->SetDlgItemText (IDC_SENDMUL,"手动发送");
m_status="手动发送模式...";
}
}
m_OutFileName=dlg.m_OutFileName ;
m_Comm.SetRTSEnable (1);
UpdateData(FALSE);
}
void CNewComDlg::OnAbout()
{
// TODO: Add your command handler code here
CAboutDlg dlg;
dlg.DoModal ();
}
HBRUSH CNewComDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(pWnd->GetDlgCtrlID ()==IDC_RXD)
{
pDC->SetBkColor (RGB(255,255,255));
return m_Brush;
}
if(pWnd->GetDlgCtrlID ()==IDC_STATUS)
{
CFont ft;
ft.CreatePointFont (100,"仿宋体");
pDC->SelectObject (&ft);
return hbr;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CNewComDlg::OnClearoutput()
{
// TODO: Add your control notification handler code here
this->SetDlgItemText (IDC_TXD,"");
m_TXD="";
}
void CNewComDlg::OnSendmul()
{
// TODO: Add your control notification handler code here
CString str;
GetDlgItemText (IDC_SENDMUL,str);
if(str=="自动发送")
{
SetTimer(1,m_Time ,NULL);
this->SetDlgItemText (IDC_SENDMUL,"停止");
}
else if(str=="停止")
{
KillTimer(1);
this->SetDlgItemText (IDC_SENDMUL,"自动发送");
}
else if(str=="发送文件")
{
CString m_SendFile;
CFile file(m_OutFileName,CFile::modeRead );
file.ReadHuge (m_SendFile.GetBuffer (file.GetLength ()),file.GetLength ());
file.Close ();
m_status="开始发送...";
UpdateData(FALSE);
m_Comm.SetOutput (COleVariant(m_SendFile));
m_status="发送完毕...";
UpdateData(FALSE);
m_SendFile.ReleaseBuffer ();
}
else
{
m_Comm.SetOutput (COleVariant(m_TXD));
}
}
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_ZIZHUAN="1978年,的确是春天,我从心里喜欢这句话。因为,那年我出生了。只听妈妈告诉我说:”你出生的那天晚上月亮好圆“,阴历十五嘛,不圆才怪呢!";
m_ZIZHUAN+="10岁的时候,我总爱照镜子,因为小时侯就帅,没有办法~。我家有个一米八多的大立柜,上面有一面大镜子,我天天站在镜子前左看右看,就是看不够。";
m_ZIZHUAN+="一天我突然指着镜子上一个”小太阳“,对我爸爸说:”我以后要长到和镜子上小太阳一样高“。我爸爸不高兴的说:“那才多高”。果然,";
m_ZIZHUAN+="我真长到小太阳一样高,可惜的是,那个小太阳海拔才一米七多些。15岁那年,路过家乡的一所大学,我又对我爸爸说:”我以后要考这个大学“。我爸爸说:";
m_ZIZHUAN+="这个大学不好,没有名。遗憾的是,又被我言中了。还学了汽车专业。20岁的时候,到长春亲戚家玩,溜达到吉林大学,我心里突然想,我以后要考吉林大学硕士。";
m_ZIZHUAN+="不幸的是,我毕业的时候,连考研的意图都没有,就迷迷糊糊的去了一个汽车研究所混了三年。一次到深圳旅游(自费),我坐着波音飞机,心里这个怕啊,怕掉下来啊。";
m_ZIZHUAN+="我和旁边一个大款搭话(看起来象大款),我说:”飞机掉下去怎么办?“。他居然回答:”飞机上这么多人呢,怕什么。“我靠~,人多就不怕?那可是飞机,在10000米高空哦。";
m_ZIZHUAN+="在深圳折腾没有钱了,只能坐火车回去了,在车上遇到一个山东大学的女孩。她说她月薪4500,居然辞职考研了。这下把我刺激坏了,老子也考。一下不小心,就考到吉林大学来了。";
m_ZIZHUAN+="也许是天意,缘分啊~";
m_ZIZHUAN+="故事还有很多,没有什么风花雪月,就是那么朴实真实。不经历了风风雨雨,怎么才能看到彩虹。再讲一个故事,从小学的时候,就开始玩电子游戏,那个时代还是“小型”,比如:";
m_ZIZHUAN+="运河大战,警察抓小偷等。4毛钱打一把。后来,出现了,魂斗罗,超级玛丽,汽车要塞,绿色兵团,影子传说,等等吧。电视也从黑白变成了彩色。价格也降到了2毛一把。";
m_ZIZHUAN+="到了我上初中的时候,就出现的大型电子游戏,如:双截龙,战斧等。大年三十的前一个晚上,我又偷偷的溜进了游戏厅,正玩的高兴,被我爸爸当场把我抓住,在回家路上,我怕啊,";
m_ZIZHUAN+="怕我爸爸回家揍我,我真想找个机会跑掉,就是没有这个胆量。很幸运,因为要过年,就算了。不过,以后的一次打游戏,把书包丢了,终于没有逃脱这顿揍啊。";
m_ZIZHUAN+="后来,我考上了重点高中,学习忙,也就没有机会再去打大型游戏,其实,那个时候,我把兴趣转到了286电脑上了。改打电脑游戏了。玩的第一款游戏是:英雄无敌2。";
m_ZIZHUAN+="人年龄要是大了,就是求稳定啊,不愿意动了,不喜欢折腾了。现在我就想着,等我毕业了,找个轻松的地方一迷。多潇洒~~~ ";
m_ZIZHUAN+="Email: xiaolanyu@163.com 作者:Pink 2006年5月";
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
int CNewComDlg::StrToDec(char ch)
{
if(ch>='0'&&ch<='9')
return ch-0x30;
else if(ch>='A'&&ch<='F')
return ch-'A'+10;
else if(ch>='a'&&ch<='f')
return ch-'a'+10;
else
return (-1);
}
void CNewComDlg::OnNum()
{
// TODO: Add your command handler code here
if(!pdlg.m_hWnd)
{
pdlg.Create (IDD_VIEWNUM);
pdlg.ShowWindow (SW_SHOW);
}
}
void CNewComDlg::OnUpdateNum(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck ();
}
void CNewComDlg::OnCurve()
{
// TODO: Add your command handler code here
CDlgCurve *pCdlg=new CDlgCurve();
pCdlg->Create (IDD_CURVE);
pCdlg->ShowWindow (SW_SHOW);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -