MFC 两个对话框如何同时控制一个串口控件

zhinengjiagong 2018-08-09 10:38:30
我编写一个程序,主对话框可以通过串口控件发送数据。现在要求子对话框亦可以通过这个串口控件发送数据。 我应该怎么做呢? 我想着是在子对话框中获取串口控件的指针,然后调用发送函数,但是不对。


子对话框发送代码

unsigned char SendBuffer[8]={165,90,1,4,8,211,61,(0xa5+0x5a+1+4+8+0xd3+0x3d)&0xff};

CByteArray OutBuf;

COleVariant varOutput;

OutBuf.SetSize(8);

for(int nsize=0;nsize<8;nsize++)

OutBuf[nsize] = SendBuffer[nsize]; //BYTE转CByteArray

varOutput = OutBuf;//CByteArray转COleVariant

(CMyDlg *)GetDlgItem(IDC_MSCOMM1)-> put_Output(COleVariant(varOutput)); // 以数组的形式发送出去
...全文
320 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhinengjiagong 2018-08-28
  • 打赏
  • 举报
回复
只需要将定义其成员变量的地方改成如下:
CButton m_btnCtrol;
改至CPP实现文件中
CButton gl_btnCtrol;
当然,同时关联处的变量名也要跟着变,如:
DDX_Control(pDX, IDC_BUTTON1, gl_btnCtrol);
再在头文件中添加
extern CButton gl_btnCtrol;
这样只要在你需要使用它的地方,引用头文件就可以了
schlafenhamster 2018-08-09
  • 打赏
  • 举报
回复
(CMSComm *)GetDlgItem(IDC_MSCOMM1);
是 当前 对话框 取 对话框内 的 m_mscomm ;
如果 m_mscomm 不在 当前 对话框 ,要先取 m_mscomm 所在 的 对话框 !
zhinengjiagong 2018-08-09
  • 打赏
  • 举报
回复
本人MFC比较菜,高手详细说一下,应该怎么做
schlafenhamster 2018-08-09
  • 打赏
  • 举报
回复
(CMyDlg *)GetDlgItem(IDC_MSCOMM1)

子对话框 (WS_CHILD) 在 主 对话框里 ? 那么· GetParent 就是 主 对话框 。
子对话框 (WS_POPUP)不在主 对话框里 ? 那么 AfxGetMainWnd(); 就是 主 对话框 ,
schlafenhamster 2018-08-09
  • 打赏
  • 举报
回复
控件绑定的变量
ms_Comm 是个 无界面 的 控件, 即 就是 一个 函数集合 。
zhinengjiagong 2018-08-09
  • 打赏
  • 举报
回复
这个控件绑定的变量没法放入到APP文件中吧
schlafenhamster 2018-08-09
  • 打赏
  • 举报
回复
把公用的 函数 变量 放 App 文件 中 ,用时
extern CxxxxApp theApp;

AfxGetApp()
woshi_hujunjun 2018-08-09
  • 打赏
  • 举报
回复
用自定义消息传递

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧