解决问题送100,只給一个人 我想使用定时器,msdn没看出什么,请教哪位详细说说OnTimer,KillTimer,SetTimer,的功能和参数含义,并且何时使用,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int CMONEView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here SetTimer(1,50,NULL);//1为定时器编号,50为50毫秒 return 0;}void CMONEView::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CView::OnTimer(nIDEvent);}void CMONEView::OnDestroy() { CView::OnDestroy(); // TODO: Add your message handler code here KillTimer(1);//1为定时器编号 } 我觉得你就用mfc的CWnd类下的成员比较方便。1、调用SetTimer,设置一个时钟,第一个参数为时钟的标识,用一整数即可,第二个参数为时间间隔,第三个设为NULL.2、重载OnTimer,在CWnd类或是其派生泪下有一WM_TIMER消息。类是代码如下:void CRecordSrvView::OnTimer(UINT nIDEvent) { switch(nIDEvent) { case RECORD_PLAN_EVENT: CheckRecordPlan(); break; case CHECK_RECORD_EVENT: CheckVideoStatus(); break; default: break; } CEditView::OnTimer(nIDEvent);}3、当你不用定时器时,KillTimer(nId),参数时在SetTimer中的时钟标识为同一值。 我觉得你就用mfc的CWnd类下的成员比较方便。1、调用SetTimer,设置一个时钟,第一个参数为时钟的标识,用一整数即可,第二个参数为时间间隔,第三个设为NULL.2、重载OnTimer,在CWnd类或是其派生泪下有一WM_TIMER消息。类是代码如下:void CRecordSrvView::OnTimer(UINT nIDEvent) { switch(nIDEvent) { case RECORD_PLAN_EVENT: CheckRecordPlan(); break; case CHECK_RECORD_EVENT: CheckVideoStatus(); break; default: break; } CEditView::OnTimer(nIDEvent);}3、当你不用定时器时,KillTimer(nId),参数时在SetTimer中的时钟标识为同一值。 UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );第一个参数是要设置的定时器的标志,第二个是间隔,第三个是回调函数,一般为NULL就可以。OnTimer 是响应WM_TIMER 消息的函数,设置定时器后,每nElapse微秒调用一次。用完就用KillTimer 传递SetTimer时的第一个参数给他,杀掉该定时器 OnTimer设置定时器.举个例子,我在CmainFrame::OnCreate方法,增加用来设置定时器的代码。int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){if(CMDIFrameWnd::OnCreate(lpCreateStruct)==-1)return –1;…//增加你的代码SetTimer(1,500,NULL);}通过ClassWizard为CMainFrame增加下列消息处理函数: CMainFrame OnTimer WM_TIMER CMainFrame OnDestroy WM_DESTROY在CMainFrame::OnTimer方法中,增加用来启动定时器的代码。void CMainFrame::OnTimer(UINT nIDEvent){//增加你的代码}在CMainFrame::OnDestroy方法中,增加在主窗口撤销时中止定时器的代码。void CMainFrame::OnDestroy(){CMDIFrameWnd::OnDestroy();//增加你的代码KillTimer(1);} 有一个编程问题,已经解决。一直以为是MS的编译器有问题,请大家一起思考 因为世界杯把分都输没的进来签名吧! 求个日志类或是LOG4XX日志类DEOM 各位谁能够提供一个插入进程的源代码? 问个弱弱的问题。 请问弹出下面的消息是什么原因? 关于对话框窗口内部绘图的问题 关于动态内存的问题》》》奇怪的问题。请高手解释解释 编译,链接都没有问题,运行出错,咋办?? SendRequest 有时候会出现超时现象怎么解决? ado调不过去了,帮忙看一下。 组播求救
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
SetTimer(1,50,NULL);//1为定时器编号,50为50毫秒 return 0;
}void CMONEView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CView::OnTimer(nIDEvent);
}void CMONEView::OnDestroy()
{
CView::OnDestroy();
// TODO: Add your message handler code here
KillTimer(1);//1为定时器编号
}
1、调用SetTimer,设置一个时钟,第一个参数为时钟的标识,用一整数即可,第二个参数为时间间隔,第三个设为NULL.
2、重载OnTimer,在CWnd类或是其派生泪下有一WM_TIMER消息。类是代码如下:
void CRecordSrvView::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case RECORD_PLAN_EVENT:
CheckRecordPlan();
break;
case CHECK_RECORD_EVENT:
CheckVideoStatus();
break; default:
break;
}
CEditView::OnTimer(nIDEvent);
}3、当你不用定时器时,KillTimer(nId),参数时在SetTimer中的时钟标识为同一值。
1、调用SetTimer,设置一个时钟,第一个参数为时钟的标识,用一整数即可,第二个参数为时间间隔,第三个设为NULL.
2、重载OnTimer,在CWnd类或是其派生泪下有一WM_TIMER消息。类是代码如下:
void CRecordSrvView::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case RECORD_PLAN_EVENT:
CheckRecordPlan();
break;
case CHECK_RECORD_EVENT:
CheckVideoStatus();
break; default:
break;
}
CEditView::OnTimer(nIDEvent);
}3、当你不用定时器时,KillTimer(nId),参数时在SetTimer中的时钟标识为同一值。
用完就用KillTimer 传递SetTimer时的第一个参数给他,杀掉该定时器
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if(CMDIFrameWnd::OnCreate(lpCreateStruct)==-1)
return –1;
…
//增加你的代码
SetTimer(1,500,NULL);}
通过ClassWizard为CMainFrame增加下列消息处理函数:
CMainFrame
OnTimer
WM_TIMER
CMainFrame
OnDestroy
WM_DESTROY
在CMainFrame::OnTimer方法中,增加用来启动定时器的代码。
void CMainFrame::OnTimer(UINT nIDEvent)
{
//增加你的代码
}
在CMainFrame::OnDestroy方法中,增加在主窗口撤销时中止定时器的代码。
void CMainFrame::OnDestroy()
{
CMDIFrameWnd::OnDestroy();
//增加你的代码
KillTimer(1);
}