最近做的一个项目

最近老板叫帮他们做个项目,可能是我们是嵌入式实验室,会用vc的人太少了,所以尽管我也不太会,老板还是把任务交给我了,哎,没办法,赶鸭子上架啊。最后总算还是做出来了,下面把项目的心得写写。
该项目主要是将采集到的数据从串口上传到PC机,在PC机上把数据解析,并且以表格和曲线形式显示出来。
   串口遇到的主要问题:
       1。以二进制读取,接受的数据中0x00都给丢弃了。
          解答:
          这个问题主要是由于所用的ActiveX控件MSCOMM的右键--属性--(硬件)或者(全部)设置中选择了                   NullDiscard所致
   曲线显示遇到的主要问题:
       1。采用双缓冲绘图,并且在ONPAINT中也做了处理,但是当图形最大化或者最小化时候,图象仍然消失
          解答:
          在处理之前加上下面语句就可以了。我的程序是对IDC_EDIT1做的处理。
          CWnd* pWnd =GetDlgItem(IDC_EDIT1);
      pWnd->UpdateWindow();
          //添加重绘的内容
       2。在内存中绘图,选择有颜色的画笔后,绘出的图形仍然没有颜色
          解答:
          CBitmap *pOldBitmap = NULL;
       dcMem6.CreateCompatibleDC(NULL);
      m_bmpBuf.DeleteObject();
      CRect rect;
       CWnd* pWnd =GetDlgItem(IDC_EDIT1);
      CDC *pDC;
      pDC = pWnd->GetDC();
      m_bmpBuf.CreateCompatibleBitmap(pDC,8080,500);
      //之前用的m_bmpBuf.CreateCompatibleBitmap(m_bmpBuf,8080,500);
      pOldBitmap = dcMem6.SelectObject(&m_bmpBuf);
     小知识:
     1。声明全局变量:可以用下面的方法
     在stdafx.c中定义
     在stdafx.h中用extern声明,如果在定义中有初始值,在声明中不要该初始值。

     2。弹出窗口前先将窗口的头文件加在要弹出窗口的文件中
    
     3。vc++6.0中for(int i;i<10;i++){....}定义的变量i的范围并不仅仅在{....}中
    
     4。要声明一个类,并不仅仅把它的头文件包含进来就可以,而且要包含那些类的.cpp文件中所包含的头文件
    
     5。vc中创建CFORMVIEW类型SDI,比如说名字叫CMyView,我们在CMainFrame中的控件如何对CMyView中的控件操作呢     ?这里介绍2种方法:
      1:在CMyView中建立一个函数,在该函数中对本类的控件进行操作,用GetDlgItem(ID)可以得到控件的CWnd指针
      2:不建立函数,在CMainFrame中获得指向CMyView的指针后,再进行上一步中的操作
 
      在CMainFrame中获得CMyView对象的指针的方法:
      CMyView*   pView;
      pView=(CMyView*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveView();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值