友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VC语言6.0程序设计从入门到精通-第121章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






                                   图 11…18    对话框界面  



     为对话框添加完控件后,需要设置各控件 ID,并为其添加变量。各控件的 ID 及其对应 

的变量如表 11…14 所示。  



 ·324 ·  


…………………………………………………………Page 336……………………………………………………………

                                                                                     第 11 章    网络编程  



     表 11…14                             各控件 ID 及对应变量  

               控件                                  ID                                变量  

 MSm 控件                          IDC_MSM                         CMSm m_m  

 接收数据 Edit                          IDC_RECEIVEDATA                    CString m_Receive  

 发送数据 Edit                          IDC_SENDDATA                       CString m_Send  

 选择串口下拉列表                           IDC_BOLIST                      int m_Port (初始化为0 )  

 打开串口按钮                             IDC_OPENPORT                       无  

 关闭串口按钮                             IDC_CLOSTPORT                      无  

 发送按钮                               IDC_SEND                           无  



     在文件“MSmDlg。h ”的头部加入语句#include  〃msm1。h〃 ,然后为对话框类加入 

成员函数 void Initm() ,来初始化 MSm 控件,其代码如下:  



     void CMSmDlg::Initm()  



     {  



          //设置串口  



          m_m。SetmPort(m_Port+1);  



          //  设置数据读取格式为二进制方式  



          m_m。SetInputMode(1);                



          //  设置传输参数  



          m_m。SetSettings(〃9600;n;8;1〃);  



          //缓冲区内有一个字符就可以接收  



          m_m。SetRThreshold(1);  



          //  指定接收缓冲区大小  



          m_m。SetInBufferSize(1024);  



          //指定发送缓冲区大小  



          m_m。SetOutBufferSize(1024);  



          //  清空接收缓冲区  



          m_m。SetInBufferCount(0);                       



          //  打开串口  



          if(!m_m。GetPortOpen())  



          {  



                m_m。SetPortOpen(TRUE);  



          }  



     }  



     当选择下拉列表中的端口时,会激发 CBN_SELCHANGE 消息,为其添加响应函数,代 

码如下:  



     void CMSmDlg::OnSelchangebolist()    



     {  



          // TODO: Add your control notification handler code here  



          CString m_str;  



          //得到下拉列表内容  



          GetDlgItemText(IDC_BOLIST; m_str);  



                                                                                                 ·325 ·  


…………………………………………………………Page 337……………………………………………………………

Visual C++ 6。0 程序设计从入门到精通  



            //得到串口号  



            m_Port = atoi(LPCTSTR(m_str))…1;  



      }  



      为“打开串口”按钮添加响应函数,代码如下:  



      void CMSmDlg::OnOpenport()    



      {  



            // TODO: Add your control notification handler code here  



            Initm();  



      }  



      为“关闭串口”按钮添加响应函数,代码如下:  



      void CMSmDlg::OnClostport()    



      {  



            // TODO: Add your control notification handler code here  



            if( m_m。GetPortOpen() )  



            {  



                  //  关闭串口  



                  m_m。SetPortOpen(0);  



            }  



      }  



      为“发送”按钮添加响应函数,代码如下:  



      void CMSmDlg::OnSend()    



      {  



            // TODO: Add your control notification handler code here    



            //得到发送 Edit 控件的数据  



            UpdateData(TRUE);  



            int Count=m_Send。GetLength();  



            //将发送数据传给 m_Array  



            CByteArray m_Array;  



            m_Array。RemoveAll();  



            m_Array。SetSize(Count);  



              for(int i=0;i 0)  



              {  



                     //得到接收数据  



                     m_input = m_m。GetInput();  



                     str = (char*)(unsigned char*)m_input。parray…》pvData;  



              }  



              //清除字符串中的不必要字符  



              i = 0;  



              str1 = str;  



              while(i 《 k)  



              {  



                     i++;  



                     str1++;  



              }  



              *str1    =’0’;      



                str2 = (const char*)str;  



              //得到最终数据  



              m_Receive += (LPCTSTR)str2;  



       default:  



              break;  



       }  



       //  显示数据               



       UpdateData(FALSE);  



}  



至此,程序设计完成。运行两个程序,分别选择串口  1 和串口 2 ,然后收发数据,如图 



                                                                        
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!