📄 wizarddlg.cpp
字号:
ReadFile(hCom,str,1,length,NULL);
c=str[0];
}
int Value=c;
sprintf(str,"%+3d℃",Value);
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);
CString Temperature(str);
pEdit->SetWindowTextW(Temperature);
CProgressCtrl* pCtrl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
int Pos=(int)(5*Value/8.0+25);
pCtrl->SetPos(Pos);
delete length;
}
void CWizardDlg::OnBnClickedRadio3()
{
// TODO: 在此添加控件通知处理程序代码
char str[5];
memset(str,0,5);
str[0]=(char)0xC8;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedRadio4()
{
// TODO: 在此添加控件通知处理程序代码
char str[5];
memset(str,0,5);
str[0]=(char)0xC9;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedRadio5()
{
// TODO: 在此添加控件通知处理程序代码
char str[5];
memset(str,0,5);
str[0]=(char)0xCA;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedRadio6()
{
// TODO: 在此添加控件通知处理程序代码
char str[5];
memset(str,0,5);
str[0]=(char)0xCB;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedButton9()
{
// TODO: 在此添加控件通知处理程序代码
unsigned char str[20];
memset(str,0,20);
str[0]=(unsigned char)0xCD;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO1);
int index=pCombo->GetCurSel();
str[0]=(unsigned char)index;
WriteFile(hCom,str,1,length,NULL);
DWORD dwEvtMask;
OVERLAPPED o;
o.hEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
o.Internal=0;
o.InternalHigh=0;
o.Offset=0;
o.OffsetHigh=0;
SetCommMask(hCom, EV_RXCHAR);
WaitCommEvent(hCom, &dwEvtMask, &o);
if(dwEvtMask&EV_RXCHAR)
{
ReadFile(hCom,str,1,length,NULL);
index=(int)str[0];
pCombo=(CComboBox*)GetDlgItem(IDC_COMBO2);
pCombo->SetCurSel(index);
}
delete length;
}
void CWizardDlg::OnBnClickedButton8()
{
// TODO: 在此添加控件通知处理程序代码
//这个是读写I2C,要发送的不只是命令,写I2X还有地址和数据,对吧
//51的串口很简化,只有一个SBUF缓冲器,还是收发共用,所以它一次只能收
//一个字节,两个必须要间隔一段时间,这里为了保险,间隔了50ms,其实1ms
//够了
unsigned char str[20];
memset(str,0,20);
str[0]=(unsigned char)0xCC;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);//等待50ms
//如果等待1ms以下,不能用这个函数
//我记不清用什么方法了,得查资料
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO1);
int index=pCombo->GetCurSel();
str[0]=(unsigned char)index;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
pCombo=(CComboBox*)GetDlgItem(IDC_COMBO2);
index=pCombo->GetCurSel();
str[0]=(unsigned char)index;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnCbnSelchangeCombo2()
{
// TODO: 在此添加控件通知处理程序代码
}
void CWizardDlg::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
}
void CWizardDlg::OnBnClickedRadio1()
{
// TODO: 在此添加控件通知处理程序代码
}
void CWizardDlg::OnBnClickedRadio2()
{
// TODO: 在此添加控件通知处理程序代码
}
void CWizardDlg::OnBnClickedButton10()
{
// TODO: 在此添加控件通知处理程序代码
char str[5];
memset(str,0,5);
str[0]=(char)0xC0;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck2()
{
// TODO: 在此添加控件通知处理程序代码
//以下是LED操作,看懂这个后面一样
//其实可以很简化的,没有必要写8个相同代码
//自己改吧
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK2);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0xFE;
}
else
{
led=led|(unsigned char)0x01;
}
//以上几句就是看看本LED选择框有没有被选上,然后设置数据
//选上了执行与运算(再说一次,我用的是共阳极接法)
//否则或运算
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck3()
{
// TODO: 在此添加控件通知处理程序代码
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK3);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0xFD;
}
else
{
led=led|(unsigned char)0x02;
}
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck4()
{
// TODO: 在此添加控件通知处理程序代码
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK4);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0xFB;
}
else
{
led=led|(unsigned char)0x04;
}
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck5()
{
// TODO: 在此添加控件通知处理程序代码
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK5);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0xF7;
}
else
{
led=led|(unsigned char)0x08;
}
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck6()
{
// TODO: 在此添加控件通知处理程序代码
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK6);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0xEF;
}
else
{
led=led|(unsigned char)0x10;
}
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck7()
{
// TODO: 在此添加控件通知处理程序代码
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK7);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0xDF;
}
else
{
led=led|(unsigned char)0x20;
}
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck8()
{
// TODO: 在此添加控件通知处理程序代码
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK8);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0xBF;
}
else
{
led=led|(unsigned char)0x40;
}
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedCheck9()
{
// TODO: 在此添加控件通知处理程序代码
CButton* pButton=(CButton*)GetDlgItem(IDC_CHECK9);
if( pButton->GetCheck()==BST_CHECKED )
{
led=led&(unsigned char)0x7F;
}
else
{
led=led|(unsigned char)0x80;
}
unsigned char str[5];
memset(str,0,5);
str[0]=(unsigned char)0xC6;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
Sleep(50);
str[0]=led;
WriteFile(hCom,str,1,length,NULL);
delete length;
}
void CWizardDlg::OnBnClickedButton11()
{
// TODO: 在此添加控件通知处理程序代码
MessageBox(_T("发送一封电子邮件至tianda_spl@sina.com,写明您个人信息。"),_T("注册"),MB_OK);
}
HBRUSH CWizardDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
void CWizardDlg::OnBnClickedButton12()
{
// TODO: 在此添加控件通知处理程序代码
//这个是测电容
char str[20];
unsigned char c=0x00;
memset(str,0,20);
str[0]=(char)0xCE;
DWORD* length=new DWORD;
WriteFile(hCom,str,1,length,NULL);
DWORD dwEvtMask;
OVERLAPPED o;
o.hEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
o.Internal=0;
o.InternalHigh=0;
o.Offset=0;
o.OffsetHigh=0;
SetCommMask(hCom, EV_RXCHAR);
WaitCommEvent(hCom, &dwEvtMask, &o);
if(dwEvtMask&EV_RXCHAR)
{
ReadFile(hCom,str,1,length,NULL);
c=(unsigned char)str[0];
}
double Value=c;
Value=1.0/ log( (double)255.0/(255-Value) ) - 0.47;
sprintf(str,"%1.3lf uF",Value);
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT4);
CString Capacitor(str);
pEdit->SetWindowTextW(Capacitor);
delete length;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -