现在的情况是从串口读进来了一些数据,有时间,日期,速度,经纬度等,我需要在视类窗口中用CDC的Textout 显示出来,注意不是用编辑框显示,直接在空白的窗口处显示,而且串口的数据是一秒钟读进来一个数,我在视类窗口中需要不停的更新数据,就是读进来一组数显示一组,请问各位大侠,有没有什么方法,最好是源代码,悬赏50分答谢

解决方案 »

  1.   

    多线程,在线程中接受到数据以后PostMessage/SendMessage()发送消息到View视图,在OnDraw函数中DrawText绘制文本信息不就完了
      

  2.   

    因为接受函数和ondraw都是在view类中,能不能设置需要显示的变量是全局变量,然后通过指针来显示,这是我自己想的 ,请不吝赐教
      

  3.   

    高人,能不能再具体点 我把关键代码给贴上
                  //获取速度信息
    CString speed=msg.Left(5);
    现在speed是我的速度值,
    void CShipView::OnDraw(CDC* pDC)
    {
    CShipDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here     //在视类窗口中写相应的信息

    pDC->TextOut(0,60,"V:");怎么在V:后面显示不断更新的数据,定义string 变量么?

      

  4.   

    接收数据和显示数据分开, 这个是必须的。使用一个线程来读取数据。然后有数据更新后,在OnDraw中显示文本。如果不知道该如何显示,可以百度一下。
      

  5.   

    楼上回复者的意思是你最好不要把接收和显示都放在View里,这样万一哪天有人想让你把显示放在对话框上,你就得全改,如果采用线程的话,你需要传一个窗口句柄给你的线程函数,这样接收到数据后,你直接给这个窗体发消息就可以显示了,关于在消息中传递字符串,你需要注意google下,这样你改到别的窗体显示,相对更模块化些。但我觉得其实如果把函数接口定义好,怎么写都差不多
      

  6.   

    其实只要把 PDC text放到你需要显示的数据的函数中就行了