MDI程序。
一个doc,多个视图。从串口读上来的数据要以不同的方式显示。一种方式一个视图。
从串口上来的数据改变doc数据,然后在doc中,依据不同的判定条件通知不同种类的视图更新,该如何做?如果一个视图,那简单的很,直接UpdateAllviews就可以。
两个视图也成,例如:如果想更新的是a视图,那么UpdateAllviews(&b)也凑合。现在有一堆视图,如何搞那?因为是实时的,所以需要不断地更新数据。
向特定的视图发送自定义消息?还是直接调用特定视图的OnDraw?有没有更直接的方法?谢谢
一个doc,多个视图。从串口读上来的数据要以不同的方式显示。一种方式一个视图。
从串口上来的数据改变doc数据,然后在doc中,依据不同的判定条件通知不同种类的视图更新,该如何做?如果一个视图,那简单的很,直接UpdateAllviews就可以。
两个视图也成,例如:如果想更新的是a视图,那么UpdateAllviews(&b)也凑合。现在有一堆视图,如何搞那?因为是实时的,所以需要不断地更新数据。
向特定的视图发送自定义消息?还是直接调用特定视图的OnDraw?有没有更直接的方法?谢谢
有一个烦一点的办法就是用GetFirstViewPosition和GetNextView遍历每一个view,再根据情况来更新其中某一个。这当然比发消息烦多了。
UpdateAllViews(CView *pSender,LPARAM lparam,WPARAM wparam)
更新指定视图
OnUpdate(CView *pSender,LPARAM lparam,WPARAM wparam)
文档上怎么没有?
这位大牛,俺还是不太明白,可否详细一些?多谢多谢。你写完俺就结帐
{
switch(lHint){
case 0:
CTreeView::OnUpdate(pSender, lHint, pHint) ;break;
default:m_pDataImpl->HandleOnUpdate(pSender, lHint, pHint);break;
}
}
void CDataImpl::HandleOnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
if(m_pView){
if(IsNotifyMeSel(lHint)){
if(pHint)
m_varSelObjID=*(_variant_t*)pHint;
HandleOnRefresh() ;return;
}
if(IsNotifyMe(lHint))
HandleOnRefresh() ;return;
}
}