关于Mfc中Mscomm使用出现中断错误
2015-06-04 16:08
211 查看
在使用全局的Mscomm对象时会出现上图的问题。
主要原因是在多个dialog中调用时缺少以下两句代码,
DWORD style=WS_VISIBLE;
afx_mscomm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1);
开始的时候只是在初始化的时候调用这句总是出现上述问题,在所有使用全局对象之前都加上以上两句,就完全没有问题了。
并且我发现在dialog中创建了Mscomm控件并添加变量后,会自动加上以下代码。
void CSerialCfg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_MSCOMM1, afx_mscomm);
}
你注释了 DDX_Control(pDX, IDC_MSCOMM1, afx_mscomm); 这句,你就会发现有时候会成功,但大多数的时候还是会报上图的错误。
这个我就不太清楚了,得请大神来解读了。
在我的理解DDX_Control(pDX, IDC_MSCOMM1, afx_mscomm); 与 DWORD style=WS_VISIBLE;
afx_mscomm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1);
这两句有点等价的意思,没有这个就必须要有那个,要不然就是中断错误,真的很费解。。。。
主要原因是在多个dialog中调用时缺少以下两句代码,
DWORD style=WS_VISIBLE;
afx_mscomm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1);
开始的时候只是在初始化的时候调用这句总是出现上述问题,在所有使用全局对象之前都加上以上两句,就完全没有问题了。
并且我发现在dialog中创建了Mscomm控件并添加变量后,会自动加上以下代码。
void CSerialCfg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_MSCOMM1, afx_mscomm);
}
你注释了 DDX_Control(pDX, IDC_MSCOMM1, afx_mscomm); 这句,你就会发现有时候会成功,但大多数的时候还是会报上图的错误。
这个我就不太清楚了,得请大神来解读了。
在我的理解DDX_Control(pDX, IDC_MSCOMM1, afx_mscomm); 与 DWORD style=WS_VISIBLE;
afx_mscomm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1);
这两句有点等价的意思,没有这个就必须要有那个,要不然就是中断错误,真的很费解。。。。
相关文章推荐
- how to check unsolved conflicts file list in git merge?
- Cocos2d-x数据存储
- 汉字获取首字母拼音
- 多表查询的解决方案
- 社会影响力入门:打造有所作为的公司
- C++四种强制类型转换运算符
- APP4Smarthome项目总结1
- Django数据库使用第一篇
- 屏蔽runtime error等错误的弹出框
- Hadoop到底能干啥
- 正则表达式详解
- 跨服务器访问数据库
- 随机抽奖 --java
- 什么是艺术?众筹出资人和专家的观点惊人一致
- .net防止Sql注入之SqlParameter参数详解
- 南京暴雨全城看海 降水量相当于3.3亿吨
- (我总结的实用主义)Loadrunner运行常见错误
- 原来宏定义可以这么玩
- android studio 常用快捷分享
- Android设置Selector不同状态下颜色及图片