马上就要验收了,非常急.
if(nNum>=48 && nNum<72)
{
if(nNum-48==0)
{
if(leng2<=10)
{
m_bDO[nNum-48]=TRUE;//按钮的状态为真
m_pButton_DO[nNum-48]->SetCheck(1);//按钮为按下状态
str.Format("开关%d (开)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);//在按钮上显示出上面的信息.(后面的语句是一样的.)
}
else
{
m_bDO[nNum-48] = FALSE;
m_pButton_DO[nNum - 48]->SetCheck(0);
str.Format("开关%d (关)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
}
if(nNum-48==1)
{
if(leng3<=10)
{
m_bDO[nNum-48]=TRUE;
m_pButton_DO[nNum-48]->SetCheck(1);
str.Format("开关%d (开)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
else
{
m_bDO[nNum-48] = FALSE;
m_pButton_DO[nNum - 48]->SetCheck(0);
str.Format("开关%d (关)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
}
if(nNum-48==2)
{
if(leng4<=10)
{
m_bDO[nNum-48]=TRUE;
m_pButton_DO[nNum-48]->SetCheck(1);
str.Format("开关%d (开)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
else
{
m_bDO[nNum-48] = FALSE;
m_pButton_DO[nNum - 48]->SetCheck(0);
str.Format("开关%d (关)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
}
if(nNum-48==3)
{
if(leng5<=10)
{
m_bDO[nNum-48]=TRUE;
m_pButton_DO[nNum-48]->SetCheck(1);
str.Format("开关%d (开)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
else
{
m_bDO[nNum-48] = FALSE;
m_pButton_DO[nNum - 48]->SetCheck(0);
str.Format("开关%d (关)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
}
if(nNum-48==4)
{
if(leng6<=10)
{
m_bDO[nNum-48]=TRUE;
m_pButton_DO[nNum-48]->SetCheck(1);
str.Format("开关%d (开)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
else
{
m_bDO[nNum-48] = FALSE;
m_pButton_DO[nNum - 48]->SetCheck(0);
str.Format("开关%d (关)", nNum);
m_pButton_DO[nNum-48]->SetWindowText(str);
}
}
SetDeviceDO(); // 输出开关量状态
}
在程序中主要采用的是定时扫描的方式进行获取按钮的信息.
在上面的语句中主要是自动控制五个按钮,在最开始的状态应该都是显示为按下的状态,然后经过改变条件才会变化,例如按钮自动弹起.但是在实际应用中却只有前面两个能达到自动按下及弹起,不知道为什么后面三个不能自动按下及弹起.语句运行是没有错误,只是功能上没达到预期的效果.谢谢高手解答.