Visual C++6.0中串行通讯控件使用技巧与实践.pdfVIP

  • 0
  • 0
  • 约4.46千字
  • 约 7页
  • 2026-03-17 发布于北京
  • 举报

Visual C++6.0中串行通讯控件使用技巧与实践.pdf

串口通讯

之MSComm串行通讯

控件

,在互联网上发现许多VisualC++者求助如何使用MSComm串行通讯控件,

笔者也读到过一些关于使用MSComm通讯控件的文章,大部分只是从表面上泛泛地做了

介绍,没有涉及到真正的程序实现,读者仍然无法使通讯控件工作起来。其实,在VC++6.0

中使用通讯控件,还必须了解COleVariant与动态数组等一些知识。现在我单位正与济宁

二号煤矿合作开发“井下采区变电所微机集中系统”,我所选用的开发环境即为Visual

C++6.0,其中的通讯功能都是由MSComm通讯控件完成的,希望能通过本文将在程

序开发过程中的一些体会和心得奉献给广大读者。

在VisualC++6.0中使用串行通讯控件,至少应该从以下几个方面进行考虑:

1.如何引入通讯控件

如果使用的是其他可视化程度较高编程语言,如VB、C++Builder或Delphi等,通讯

控件可以被直接引入到任意某个窗体之中,而使用VisualC++时,只有通过框资源编

辑器来引入通讯控件到框中或由CFormView派生而来的视图中。如果选择的框是

模态的,则在使用通讯控件时必须打开该框,这对于基于框的应用程序使用十分方

便。如果不想使用框的话,则可将程序的视图类设计为由CFormView派生而来的视图。

CFormView与相应的框资源相关联,具有很多框的特点,这样,我们可以将通讯

控件直接引入到程序视图之中。后面这种方法的缺点是视图的使用受到了很大的限制。下面

介绍另外一种使用比较方便,且更加有效的方法。

同样,我们还是将通讯控件引入到框中,只是将框做成非模态的。如果没有其

他需要的话,框中只包含通讯控件一个元素,且在程序执行时,该框始终处于不可

视状态。设计时程序中任何地方,只要能到该框,就可使用其中的通讯控件。下面

介绍非模态框CCommDlg的制作及其使用方法,CCommDlg由CDialog派生而来。

由于在程序执行过程中框是不可视的,用户不可能对其进行任何操作,因此不需要处理

框的确定和取消按钮的响应消息。为了方便起见,只需向其中增加一个BOOL类型的

成员函数Create(),定义如下:

BOOLCCommDlg::Create()

{

returnCDialog::Create(CCommDlg::IDD);

}

另外,由于框是不可视的,必须通过框资源编辑器将其Visible属性设置掉。

由于主框架窗口CMainFrame是程序的主窗口,程序其他部分的代码很容易通过函数

AfxGetMainWnd或其他方法到CMainFrame类型的成员,并程序的主窗口的C++

对象和其窗口对象在程序的运行过程中总是有效的,直到程序运行结束才将其释放和析够。

因此,我们可以在CMainFrame中增加一个指向CCommDlg类型的指针变量:CCommDlg

*m_pCommDlg,在CMainFrame的OnCreate成员函数构造并创建该框,代码如

下所示:

intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)

{

if(CFrameWnd::OnCreate(lpCreateStruct)==-1)return-1;

……

m_pCommDlg=newCCommDlg();

if(!m_pCommDlg)

return-1;

m_pCommDlg-Create();

……

}

m_pCommDlg对象创建成功后,其C++对象和窗口对象一直处于有效状态,直到程

序结束时,才用下面的代码在CMainFrame的析够函数中将

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档