VC
在MAIN 程序中定义一个MAP容器,并插入数据(数据是实时被更新的)
在分割窗口的程序中,也就是另外一个CPP文件中调用了EXTERN MAP<..>
在这个文件中遍历MAP,但数据没有被实时更新,永远都是第一次插入时的数据,WHY?如何做到实时遍历更新数据呢?main.cpp插入
if(Ds_receive_flag==TRUE)
{
if(Ds_frame_count==8)TRACE("%s",receivedata);
Ds_map.insert(map<int,CString>::value_type(Ds_frame_count,receivedata));
Ds_frame_count++;
}
viewchange.cpp遍历 for(map<int, CString>::const_iterator dsiter=Ds_map.begin();dsiter!=Ds_map.end();++dsiter)
{
//TRACE("%d",dsiter->first);
if((dsiter->first)==m_strframe_int)
{
CString m_dsframe=dsiter->second;
RE_X=m_dsframe.Mid(strtol_int*2,2);
RE_Y=m_dsframe.Mid((strtol_int+1)*2,2);
if(nItem==0)
TRACE("%s",RE_X);
break;
} }
在MAIN 程序中定义一个MAP容器,并插入数据(数据是实时被更新的)
在分割窗口的程序中,也就是另外一个CPP文件中调用了EXTERN MAP<..>
在这个文件中遍历MAP,但数据没有被实时更新,永远都是第一次插入时的数据,WHY?如何做到实时遍历更新数据呢?main.cpp插入
if(Ds_receive_flag==TRUE)
{
if(Ds_frame_count==8)TRACE("%s",receivedata);
Ds_map.insert(map<int,CString>::value_type(Ds_frame_count,receivedata));
Ds_frame_count++;
}
viewchange.cpp遍历 for(map<int, CString>::const_iterator dsiter=Ds_map.begin();dsiter!=Ds_map.end();++dsiter)
{
//TRACE("%d",dsiter->first);
if((dsiter->first)==m_strframe_int)
{
CString m_dsframe=dsiter->second;
RE_X=m_dsframe.Mid(strtol_int*2,2);
RE_Y=m_dsframe.Mid((strtol_int+1)*2,2);
if(nItem==0)
TRACE("%s",RE_X);
break;
} }
每次insert插入数据后发个消息给VIEW,然后在VIEW的消息响应函数里调用你那遍历的函数