我想知道父对话框上MSCOMM控件能不能被子对话框调用来收发数据,我只要在子对话框中一涉及到这个控件就报错,什么内存不能为读,只是调用来检查一下串口是否打开也报错,是不是该控件只能在他所属的对话框使用啊,要可以被子对话框调用更具体该如何操作啊

解决方案 »

  1.   

    为了减少错误,以及控件可能的问题,可以子对话框调用父对话框等方法来控制MSComm控件
      

  2.   

    为什么我调用就出错啊,我大概说一下思路看对不对啊,在主对话框添加MSCOMM控件,空间变量m_ctrlComm ,打开串口在子对话框CPP文件中包含主对话框头文件,加一个按钮比如就是OK按钮,单击OK,函数响应代码{首先获得父窗口指针,比如为a;然后判断串口是否打开:if(!a->m_ctrlComm.GetPortOpen()) ……}就到这,后边代码去掉的话单击OK都会出错,内存不能为读,不知道哪的问题
      

  3.   

    先看a->m_ctrlComm 这个获得是否正确..
      

  4.   

    哦,首先确保父窗口能对COM控件正确操作。
      

  5.   

    父窗口能正确操作,可以正确打开串口啊,如何看a->m_ctrlComm的获取是否正确啊,我是在输入a->后在弹出小窗口中选的m_ctrlComm ,应该是正确的吧
      

  6.   

    GetPortOpen是否能正确调用,控件m_ctrlComm其他一些函数等是否都可以调用
      

  7.   

    我知道问题出在哪了,但还是不知道如何解决,用子对话框确实可以调用主对话框的MSComm控件,但我是在主对话框上加了个Tab control控件,在这个控件上加了几个子对话框,然后在这些子对话框中调用主对话框的MSComm控件就会出问题,用Tab control控件是为了界面上美观一点,因为子对话框很多,要是在主对话框上添加一堆按钮,点一个弹出一个子对话框不是很舒服啊,要用单文档菜单也感觉怪怪的,(呵呵不知为什么就看上Tab了),不知道能不能解决呀,要是再不行只能舍掉了,谢谢帮助