用VC++ 6.0制作网络自动测试程序
2008-11-14 19:35:02 来源:WEB开发网(2)增加自动测试菜单Autotest:在资源工作区,选中MENUàIDR_MAINFRAMEà点中空的菜单条à属性à令ID=ID_AUTOTEST,标题=Autotest。
在ClassWizard中,对应Class name=CNetestView,Object IDs=ID_AUTOTEST,Message =COMMAND,点击Add FunctionàOnAutotest àEdit Code,增加相应代码如下:
void CNtestView::OnAutotest()
{
SetTimer(1, 30000,NULL); //each 30s interupt 1 time.
Tc=20;
CWnd* pParent=GetParent();
CMenu * pMenu=pParent->GetMenu();
pMenu->EnableMenuItem(ID_AUTOPING,MF_BYCOMMAND| MF_DISABLED | MF_GRAYED);
pMenu->EnableMenuItem(ID_STOPAUTO,MF_ENABLED);
AfxGetMainWnd()->SendMessage (WM_TIMER,0, 0L);
}
其中SetTimer()将定时器设为每30秒中断一次。由Tc计算中断次数。余下几句条语句令Autotest菜单变灰,以免多次重入。最后一条语句使得鼠标点击Autotest菜单后,即转到OnTimer()函数开始自动测试。
(3)增加定时测试代码。在ClassWizard中,对应Class name=CNetestView的Message, 选中WM_TIMERàAdd FunctionàEdit Code,在OnTimer() 函数中增加如下代码:
void CNetestView::OnTimer(UINT nIDEvent)
{
if(Tc++<20) return;
KillTimer(1);
Tc=0;
BOOL bOK=TRUE;
InvalidateRect(NULL);
for(int ipT=0;ipT
{
if(Autotest(lpHost[ipT].nodeIP,3)==FALSE) {
CString strerr;
strerr.Format("err%d.wav",ipT+1);
sndPlaySound(strerr, SND_LOOP |SND_ASYNC );
HDC hdc= CreateDC("DISPLAY",0,0,0);
SelectObject(hdc,lpHost[ipT].hrgn);
InvertRgn(hdc,lpHost[ipT].hrgn);
DeleteDC(hdc);
bOK=FALSE;
}
else if(bOK) sndPlaySound("Bird0.wav", SND_ASYNC);
}
SetTimer(1, 30000,NULL);
CFormView::OnTimer(nIDEvent);
}
更多精彩
赞助商链接