WEB开发网
开发学院软件开发VC 用VC++ 6.0制作网络自动测试程序 阅读

用VC++ 6.0制作网络自动测试程序

 2008-11-14 19:35:02 来源:WEB开发网   
核心提示: (2)增加自动测试菜单Autotest:在资源工作区,选中MENUàIDR_MAINFRAMEà点中空的菜单条à属性à令ID=ID_AUTOTEST,用VC++ 6.0制作网络自动测试程序(2),标题=Autotest,在ClassW

(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);
}

Tags:VC 制作 网络

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接