13.8.2 设置串口控制部分的组合框(1)
利用向导为串口设置部分组合框,并添加组合框类型的关联变量。
- CComboBox m_combStop; //停止位组合框
- CComboBox m_combData; //数据位组合框
- CComboBox m_combCom; //串口组合框
- CComboBox m_combCheck; //校验位组合框
- CComboBox m_combBaud; //波特率组合框
在配置窗体的初始化函数中,利用这些变量初始化组合框。 - 01 BOOL CMyComSetDlg::OnInitDialog()
- 02 {
- 03 …
- 04 InitComb(); //初始化组合框
- 05 …
- 06 }
InitComb()函数调用各个组合框的初始化函数,实现组合框的初始化工作。- 01 void CMyComSetDlg::InitComb()
- 02 {
- 03 InitCombCom(); //初始化串口组合框
- 04 InitCombBaud(); //初始化波特率组合框
- 05 InitCombData(); //初始化数据位组合框
- 06 InitCombStop(); //初始化停止位组合框
- 07 InitCombCheck(); //初始化校验位组合框
- 08 }
下面详细介绍这些初始化组合框的函数。
(1)InitCombCom()函数用于初始化串口组合框,将可能打开的串口号插入显示到这个组合框中。
- 01 void CMyComSetDlg::InitCombCom()
- 02 {
- 03 int i = 0;
- 04 CString str;
- 05 for(i = 0 ; i < 5; i++) //当前仅显示到第5个串口
- 06 {
- 07 str.Format("COM%d",i + 1);
- 08 m_combCom.InsertString(i,str);
- 09 }
- 10 m_combCom.SetCurSel(m_nCom - 1); //当前显示的串口
- 11 }
m_nCom是窗口类的成员变量,用于记录当前调试器打开的串口号。在这个函数中将根据这个变量将当前的串口名称显示到串口组合框中。
(2)InitCombBaud()函数用于初始化串口波特率组合框,将串口可能用到的串口波特率插入到该组合框中,并将当前调试器使用的波特率(m_nBaud),显示到该组合框中。
- 01 void CMyComSetDlg::InitCombBaud()
- 02 {
- 03 int i = 0, temp = 300;
- 04 CString str; //转化波特率
- 05 m_combBaud.InsertString(0,"110"); //将110的波特率作为0序号
- 06 for(i = 1; i < 9; i++) //插入300~38400
- 07 {
- 08 str.Format("%d",temp);
- 09 m_combBaud.InsertString(i,str);
- 10 temp *= 2;
- 11 }
- 12 m_combBaud.InsertString(9,"43000");
- 13 m_combBaud.InsertString(10,"56000");
- 14 m_combBaud.InsertString(11,"57600");
- 15 m_combBaud.InsertString(12,"115200");
- 16 m_combBaud.InsertString(13,"128000");
- 17 m_combBaud.InsertString(14,"256000");
- 18 switch(m_nBaud) //判断当前波特率的值
- 19 {
- 20 case 110:
- 21 m_combBaud.SetCurSel(0); //将当前波特率显示到组合框中
- 22 break;
- 23 case 300:
- 24 m_combBaud.SetCurSel(1);
- 25 break;
- 26 …
- 27 case 128000:
- 28 m_combBaud.SetCurSel(13);
- 29 break;
- 30 case 256000:
- 31 m_combBaud.SetCurSel(14);
- 32 break;
- 33 }
- 34 }