各位大侠:
SetTimer和OnTimer到底怎么配合使用阿,谢谢了
void CTesttimerDlg::OnOK()
{UINT m_nTimer = SetTimer(1,5000,NULL);}void CTesttimerDlg::OnTimer(UINT nIDEvent)
{
switch (nIDEvent)
{
case 1: ///处理ID为24的定时器
MessageBox("test");
break;}
CDialog::OnTimer(nIDEvent);
}
我点“确定”也就是执行OnOK(),怎么不是隔5秒 弹出一个test 窗口
SetTimer和OnTimer到底怎么配合使用阿,谢谢了
void CTesttimerDlg::OnOK()
{UINT m_nTimer = SetTimer(1,5000,NULL);}void CTesttimerDlg::OnTimer(UINT nIDEvent)
{
switch (nIDEvent)
{
case 1: ///处理ID为24的定时器
MessageBox("test");
break;}
CDialog::OnTimer(nIDEvent);
}
我点“确定”也就是执行OnOK(),怎么不是隔5秒 弹出一个test 窗口
但是我想和那没关系 你跟下代码看看
另外,我想知道 Ontimer(),在哪调用阿 ,从代码看 没调用 它阿,怎么执行的
不要用这个名字啊
下面这样就okvoid Ctest1Dlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
SetTimer(1,5000,NULL);
//OnOK(); 没有你看下有什么效果
}void Ctest1Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 1:
MessageBox(_T("test"),0,0);
break;
default :
break;
}
CDialog::OnTimer(nIDEvent);
}
SetTimer()指定了时间,然后时间到,就会发送 WM_TIMER消息,然后你的OnTImer绑定了这个消息
timer对象不能实现精确定时控制,只能根据系统运行资源状况得到一个模糊的控制精度;
可以采用
UINT m_nTimer = SetTimer(1,5000,NULL);
timer对象不能实现精确定时控制,只能根据系统运行资源状况得到一个模糊的控制精度;
可以采用 下面的途径去控制;System.DateTime.Now.TimeOfDay.Ticks
{
// TODO: Add your control notification handler code here
SetTimer(1,5000,NULL);
//OnOK();
}void CTest1Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 1:
MessageBox(_T("test"),0,0);
break;
default :
break;
}
CDialog::OnTimer(nIDEvent);
}
我是这样写的,没有任何效果
OnBnClickedButton1() 这个函数会响应button的单击消息啊
ON_BN_CLICKED(IDC_BUTTON1, &Ctest1Dlg::OnBnClickedButton1)
是button id
afx_msg void OnBnClickedButton1();