读书人

两个对话框为主从关系子对话框怎么调

发布时间: 2012-01-11 22:28:46 作者: rapoo

两个对话框为主从关系,子对话框如何调用主对话框已经打开的串口,对其进行写操作
大家好,我这几天在做串口通信,使用了两个对话框,主对话框通过DoModal()调用子对话框,两个对话框为主从关系。串口的初始化在主对话框中,然后子对话框也要对已经在主对话框中初始化过的串口进行读写操作,子对话框如何调用主对话框已经打开的串口,本质上是一个主从对话框对同一个串口的共享操作,非常着急,请大家帮忙!

[解决办法]
DoModal()未返回前,你的主对话框运行就停那了。所以你的思路是不是可行呢?
你可以创建非模态对话框,在你的主对话框中接收串口数据,处理后,然后根据你的需要调用你的子对话框中的函数啊
[解决办法]
直接访问主对话框,在主对话框里面留有接口,调用接口即可!
这个好像很正常的访问吧,没有什么特殊的!
[解决办法]
不知道你的串口是如何操作的。

我原来做类似的项目,串口使用API自己写的类,主对话框和子对话框中都有一个串口类的指针变量,在主对话框中打开串口,弹出子对话框后,将主对话框中的串口指针赋给子对话框,子对话框可以使用串口类指针对串口进行写操作。如果子对话框要处理串口数据,则把接收串口数据的窗口设为子对话框,子对话框关闭后再把接收数据窗口设为主对话框,如果子对话框只是发送数据,这一步就不用了。

MSCOMM控件没用过,就不知道该怎么搞了。
[解决办法]
CMainDlg *dlg=(CMainDlg *)GetActiveWindow();
dlg->m_comm.SetOutput(COleVariant("comm_test,lcd_dlp_switch@"));

我这里是使用的MSCOMM控件
你用dlg这个指针调用你的串口变量就是了
[解决办法]

探讨
直接访问主对话框,在主对话框里面留有接口,调用接口即可!
这个好像很正常的访问吧,没有什么特殊的!

[解决办法]
全局变量?
子对话框的构造参数?
随意怎么传都行~
[解决办法]
俺一般使用纯api,在哪里都可以了。

读书人网 >VC/MFC

热点推荐