说白了就是三个函数的使用:
void CLMS511_interfaceDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent == 20) //这个20是第一个20. { DrawData(); if(MySSocket.StopFlag) SendServer(); } CDialog::OnTimer(nIDEvent); } KillTimer(20); //销毁标示符为20的定时器
说明:
SetTimer()定时器的第一个参数是定时器标识,可用任一非0的整数,第二个参数是定时器的时间间隔,单位是毫秒.第三个参数取值可以是NULL,
这时WM_TIMER的消息加入应用程序的消息队列中,由CWnd类对象处理 例如 SetTimer(1,1,NULL)的时间间隔是1毫秒
下面例举一下定时函数的种类:
Windows API SetTimer(HWND,UNIT,UINT,TIMERPROC); 参数意义: 1.记时器所在窗口句柄 2.序号 3.记时周期 4.记时器响应函数 CWnd类的 CWnd::SetTimer UINT SetTimer( UINT nIDEvent, //定时器的标识符 UINT nElapse, //所要定时的时间 void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWORD) );
下面是C++中如何测一个程序运行的时间举例:
unsigned long ticks1,ticks2; 在你要测试的开头写上 ticks1 = GetTickCount(); 测试部分结束时写上 ticks2 = GetTickCount();ticks2-ticks1就是所用时间 加上这个头文件Winbase.h下面再介绍一种测量程序执行时间的办法:
<time.h> 版本
clock_t start = clock(); 2./*code to be tested*/ 3.clock_t end = clock(); 4.cout<<end - start<<endl;
大家多这个版本多半不会陌生,这应该是最常用的执行时间测试方法了,能精确到ms级。
在程序运行时打印到屏幕上的函数TRACE() TRACE("距离:%d",m_DIST[i]);//在输出栏输出信息。
就是记录日志信息的。%s在程序执行的时候替换成address对应的值。%d替换成函数WSAGetLastError()返回的错误码。 总体翻译过来就是Server "address" Can‘t Find Code="WSAGetLastError()" 具体是写到文件里边,还是输出到标准输出即屏幕上,这个要看TRACE的实现了。 还有一个定时的方法,用sleep()函数实现。调用windows.h
时间: 2024-09-29 00:48:05