我在view中定义了 函数void CNetworkView::DrawDoc(mdraw *mdr)
然后定义了void CNetworkView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 1:
view->DrawDoc(mdr);
//你对1号的操作;
break;
case 2:
s2->Send(CurTime);
//对2号的操作;
break;
default:
break;
}
CView::OnTimer(nIDEvent);
}
再在
void CNetworkView::OnDraw(CDC* pDC)
{
CNetworkDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
view->SetTimer(1, 1000, NULL);
view->SetTimer(2 ,2000, NULL);
}
但是程序不总是更新,就是好像没有执行一样
然后定义了void CNetworkView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 1:
view->DrawDoc(mdr);
//你对1号的操作;
break;
case 2:
s2->Send(CurTime);
//对2号的操作;
break;
default:
break;
}
CView::OnTimer(nIDEvent);
}
再在
void CNetworkView::OnDraw(CDC* pDC)
{
CNetworkDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
view->SetTimer(1, 1000, NULL);
view->SetTimer(2 ,2000, NULL);
}
但是程序不总是更新,就是好像没有执行一样
另外,SetTimer只要在初始化的时候调用一次就够了,OnDraw函数会执行很多次。
我的目的就是隔一段时间调用一次
void CNetworkView::DrawDoc(mdraw *mdr)
如果你在程序运行过程中没有KillTimer,建议在CNetworkView::OnInitUpdate函数中
SetTimer(1, 1000, NULL);
SetTimer(2 ,2000, NULL);
把CNetworkView::OnDraw中的SetTimer去掉。
设置SetTimer,就由哪个窗口接收OnTimer,综以上,应该是在CNetworkView的OnCreate里调用SetTimer(1, 1000, NULL);前面的view不要,
switch(nIDEvent)
{
case 1:
view->DrawDoc(mdr);//view->为什么加??
把
SetTimer(1, 1000, NULL);
SetTimer(2 ,2000, NULL);
放到CNetworkView::OnInitUpdate中
把CNetworkView::OnDraw中的SetTimer删除,
运行,只执行了一次就完了,
没有动画的感觉
这个view是什么?DrawDoc中是怎么写的?
而DrawDoc(mdr);是CNetworkView的成员函数
所以要调用它更定要加view
我现在把
SetTimer(1, 1000, NULL);
SetTimer(2 ,2000, NULL); 和初始化全部加到了CNetworkView::OnInitUpdate函数中
好像可以了