串口控件
//自动获取串口:
voidCENVVAR_CONFIGDlg::GetCom()
{
//程序启动时获取全部可用串口
HANDLE hCom;
int i,num,k;
CString str;
BOOL flag;
((CComboBox *)GetDlgItem(IDC_COMBO_COM))->ResetContent();
flag = FALSE;
num = 0;
for (i = 1;i <= 16;i++)
{//此程序支持16个串口
str.Format("\\\\.\\COM%d",i);
hCom = CreateFile(str, 0, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);
if(INVALID_HANDLE_VALUE != hCom )
{//能打开该串口,则添加该串口
CloseHandle(hCom);
str = str.Mid(4);
((CComboBox *)GetDlgItem(IDC_COMBO_COM))->AddString(str);
if (flag == FALSE)
{
flag = TRUE;
num = i;
}
}
}
i= ((CComboBox *)GetDlgItem(IDC_COMBO_COM))->GetCount();
if (i == 0)
{//若找不到可用串口则禁用“打开串口”功能
((CComboBox *)GetDlgItem(IDC_COMBO_COM))->EnableWindow(FALSE);
}
else
{
k = ((CComboBox *)GetDlgItem((IDC_COMBO_COM)))->GetCount();
((CComboBox *)GetDlgItem(IDC_COMBO_COM))->SetCurSel(k - 1);
//mCom.