(一)基于对话框编程基本步骤:

1.新建基于对话框的工程;

2.拖曳所需的基本控件,构成界面;

3.使用类向导(CLASS WIZARD)创建与基本控件对应的成员变量、成员函数,确定与函数相应的消息或事件——即触礁发该函数执行的条件(如单击等)。


(二)使用mscomm控件:

1.基本设置:

m_com.SetCommPort(1); //选择COM1

m_com.SetInBufferSize(1024); //设置输入缓冲区的大小,Bytes

m_com.SetOutBufferSize(256); //设置输出缓冲区的大小,Bytes

if(!m_com.GetPortOpen()) //打开串口  

m_com.SetPortOpen(TRUE);

m_com.SetInputMode(1); //设置输入方式为二进制方式

m_com.SetSettings("4800,s,8,1");

m_com.SetRThreshold(1); //为1表示有一个字符引发一个事件    

m_com.SetInputLen(0);

2.似乎每次设置m_com.SetSettings("4800,s,8,1"),必须先关再开串口才有效。设置的校验位似乎只对发送数据有效,对接收数据无效。

3.虽然m_com.SetRThreshold(1)设置接收到一个字符就引发一个事件(触发执行函数),但执行函数读取到的数据可能不止1Byte,如另一串口连续发送多个字节,当串接收到第一个字节后就触发函数,但在函数去输入缓冲区读取数据时可以读到8Byte。


(三)MFC的一些基本使用:

1.Unsigned char 与char不同,在执行加减时,char型当作带符号数(可能为负)。

2.当控件对应的变量是控件类时,可能通过该类的成员函数来获取数据或执行操作:如m_com是mscomm控件的变量,可以执行m_com.SetPortOpen(FALSE)来关闭串口。

3.组合框对应的成员变量(int):当鼠标点取第N行数据时,用UpdateData(TRUE)更新此变量值后,变量=N-1。

UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。要接受用户的输入就true
UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。要输出结果给用户就flase

使用UpdateData()函数时,当前界面上所有绑定了的变量(即通过MFC ClassWizard给控件添加了对应的变量)都会被UpdateData(TRUE)更新成对应控件中的内容;同样所有绑定了变量的控件中的内容也会UpdateData(FALSE)更新成对应变量中的内容。数据量不多的话,最好用SetDlgItemText()和GetDlgItemText().GetWindowText()是获取控件当前内容(Caption或者the text within the control —for the control,具体可以查看MSDN)值,是对单个控件而言; 而UpdateData()是作用于整个CWnd的DDX数据交换机制之中的,是控件和数据的双向通道。

4.

 

 


GetDlgItem(IDC_CLOSE)->EnableWindow(FALSE);//禁用某控件(变灰)

GetDlgItem(IDC_OPEN)->EnableWindow(TRUE);//启用某控件

GetDlgItem(IDC_COMRXD)->SetWindowText(0);//清空编缉控件的内容

GetDlgItem(IDC_COMTXD)->SetWindowText(m_strT);//设置编缉控件的内容为

                                               //m_strT(CSring类)

m_filename.GetWindowText(strName);//获取编缉控件的内容,strName为CSring类

strName += ".txt";//CSring类的加操作

nLength=m_nEdit.GetWindowTextLength();//获取编缉控件的字节数

m_nEdit.GetWindowText(strData);

file.Open(strName,CFile::modeCreate | CFile::modeWrite);//保存数据成文件。

file.Write(strData,nLength);

file.Close();

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/matwat/archive/2009/04/03/4032649.aspx