MSCOM控件问题请教

fqli1610 2008-07-02 10:21:08
在一个对话框中添加了一个mscom控件,声明其变量为mymscom,但我在另外一个对话框中用不了这个mymscom啊,我要用,该怎办啊
...全文
175 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
fqli1610 2008-07-08
  • 打赏
  • 举报
回复
没人顶,自己顶
fqli1610 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fqli1610 的回复:]
有一个问题请教,在我每次发送数据之后,怎么会有我发送数据之外多出的数据??
比如我发送{R90},在我要发送的数据之后多出一个L,就是我用串口助手接收到的数据是{R90}L
请教了....
[/Quote]

??????????????
?????????????
没有人回答???
fqli1610 2008-07-04
  • 打赏
  • 举报
回复
来人啊,帮顶顶

自己先顶一下
fqli1610 2008-07-04
  • 打赏
  • 举报
回复
串口出现的问题还真多,唉

如果我不断的发送数据(在PC,我搞的程序上),竞会把那块板(单片机板,买回来的)搞得发不了数据过来,
需要对单片机板电源重启才有数据发过来,什么原因啊
fqli1610 2008-07-04
  • 打赏
  • 举报
回复
有一个问题请教,在我每次发送数据之后,怎么会有我发送数据之外多出的数据??
比如我发送{R90},在我要发送的数据之后多出一个L,就是我用串口助手接收到的数据是{R90}L
请教了....
fqli1610 2008-07-04
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 lfchen 的回复:]
单片机缓存满了吧
//用Xon/Xoff
[/Quote]
Xon ?
Xoff?
是不是该参数可以检查出单片机的缓存是否满了??
我也想这样,要是检测到满了就先别发送,否则就发送出去,
可如何知道单片机的缓存是否满了呢?
还有Xon/Xoff如何使用,没用过
一条晚起的虫 2008-07-04
  • 打赏
  • 举报
回复
单片机缓存满了吧
//用Xon/Xoff
fqli1610 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mycool2001 的回复:]
引用 9 楼 fqli1610 的回复:
to mycool2001
这样写,出现一个错误:
error C2039: 'mymscom' : is not a member of 'CWnd'


你前面类型转换了没有啊!

CMainDlgDlg --〉你的主对话框类 (MsComm 加入到主对话框中 定义变量 mymscom)

在你其他的类中的CPP文件中加入#include "MainDlgDlg.h" (主对话框的头文件)

在需要发送的地方写
CMainDlgDlg * pDlg = (CMainDlgDlg*) AfxGetApp()->GetMainWnd(); …
[/Quote]

类型转换???

跟着按你说的这样做,编译没错,但当我要发送数据时候 pDlg->m_mscom.SetOutput(input2)(input2是我发送的内容),就有错误出来,说是非法访问
fqli1610 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zhoujc 的回复:]
类似于下面这样应该可以的。

::SendMessage(g_MessageWnd,ON_MESSAGE_GATHER_RECVDATA,(WPARAM)msgLen,(LPARAM)msgData);

g_MessageWnd:有mymscom的对话框窗口句柄
ON_MESSAGE_GATHER_RECVDATA:自定义消息ID
msgLen:传送长度
msgData:传送内容
[/Quote]

这样我们是不是要自己编写一个函数响应这 SendMessage(g_MessageWnd,ON_MESSAGE_GATHER_RECVDATA,(WPARAM)msgLen,(LPARAM)msgData) ??该怎样写?

g_MessageWnd:有mymscom的对话框窗口句柄 是不是指有mymscom的对话框窗的ID?
zhoujc 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 fqli1610 的回复:]
引用 12 楼 zhoujc 的回复:
类似于下面这样应该可以的。

::SendMessage(g_MessageWnd,ON_MESSAGE_GATHER_RECVDATA,(WPARAM)msgLen,(LPARAM)msgData);

g_MessageWnd:有mymscom的对话框窗口句柄
ON_MESSAGE_GATHER_RECVDATA:自定义消息ID
msgLen:传送长度
msgData:传送内容


这样我们是不是要自己编写一个函数响应这 SendMessage(g_MessageWnd,ON_MESSAGE_GATHER_RECVDATA,(WPARAM)msgLen,(LPARAM)msgDat…
[/Quote]

你得自己在含有mymscom的对话框中定义一个响应消息函数(消息ID为ON_MESSAGE_GATHER_RECVDATA)。
g_MessageWnd是有mymscom的对话框窗口句柄
zhoujc 2008-07-02
  • 打赏
  • 举报
回复
类似于下面这样应该可以的。

::SendMessage(g_MessageWnd,ON_MESSAGE_GATHER_RECVDATA,(WPARAM)msgLen,(LPARAM)msgData);

g_MessageWnd:有mymscom的对话框窗口句柄
ON_MESSAGE_GATHER_RECVDATA:自定义消息ID
msgLen:传送长度
msgData:传送内容
mycool2001 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fqli1610 的回复:]
to mycool2001
这样写,出现一个错误:
error C2039: 'mymscom' : is not a member of 'CWnd'
[/Quote]

你前面类型转换了没有啊!

CMainDlgDlg --〉你的主对话框类 (MsComm 加入到主对话框中 定义变量 mymscom)

在你其他的类中的CPP文件中加入#include "MainDlgDlg.h" (主对话框的头文件)

在需要发送的地方写
CMainDlgDlg * pDlg = (CMainDlgDlg*) AfxGetApp()->GetMainWnd();
pDlg->mymscom
一条晚起的虫 2008-07-02
  • 打赏
  • 举报
回复
error LNK2001: unresolved external symbol "class CMSComm mymscom" (?mymscom@@3VCMSComm@@A)
//没有在mscomm所在的文件中定义为public, public CMSComm mymscom; //??
fqli1610 2008-07-02
  • 打赏
  • 举报
回复
to mycool2001
这样写,出现一个错误:
error C2039: 'mymscom' : is not a member of 'CWnd'
fqli1610 2008-07-02
  • 打赏
  • 举报
回复
to lfchen

这样试过,有这么一个错误哦:
error LNK2001: unresolved external symbol "class CMSComm mymscom" (?mymscom@@3VCMSComm@@A)
fqli1610 2008-07-02
  • 打赏
  • 举报
回复
to zhoujc
已经是公共成员的了,不行
zhoujc 2008-07-02
  • 打赏
  • 举报
回复
向有mscomm的对话框发送消息,在该对话框内添加相应消息函数,发送的内容带过去通过消息参数传递。应该没有问题。
mycool2001 2008-07-02
  • 打赏
  • 举报
回复
1,定义成PUBLIC
2,其他地方使用(CXXDlg *)(AfxGetApp()->GetMainWnd())->mymscom
CxxDlg 是你主对话框的类名。 在其他类中的CPP文件中加入 xxDlg.h (不要加在头文件中哦!)
一条晚起的虫 2008-07-02
  • 打赏
  • 举报
回复
在其它对话框的cpp中,包含带有mscomm申明的对话框的头文件,并在需要调用的对话框声明
extern CMSCOMM mymscomm
一条晚起的虫 2008-07-02
  • 打赏
  • 举报
回复
在其它对话框中,包含有mscomm的头文件,并声明
extern CMSCOMM mymscomm
加载更多回复(2)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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