CSerialPortAPIDlg类:classCSerialPortAPIDlg:Dialog{//Constructionpublic:CSerialPortAPIDlg(CWnd*pParent=NULL);//standardconstructor//DialogData//{{AFX_DATA(CSerialPortAPIDlg)enum{IDD=IDD_SERIALPORTAPI_DIALOG};CStringm_recv;//IDC_RECV_EDIT控件对应的变量CStringm_send;//IDC_SEND_EDIT控件对应的变量//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CSerialPortAPIDlg)protected:virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport//}}AFX_VIRTUAL//Implementationprotected:BOOLOpenSerialPort1();HICONm_hIcon;//Generatedmessagemapfunctions//{{AFX_MSG(CSerialPortAPIDlg)virtualBOOLOnInitDialog();mand(UINTnID,LPARAMlParam);afx_msgvoidOnPaint();afx_msgHCURSOROnQueryDragIcon();afx_msgvoidOnClearButton();afx_msgvoidOnSendButton();afx_msgvoidOnRecvData(WPARAMwParam,LPARAMlParam);//}}AFX_MSGDECLARE_MESSAGE_MAP()};6、①:HANDLECreateFile(LPCTSTRlpFileName,//将要打开的串口逻辑名,ess,//指定串口访问的类型,可以是读取、写入或两者并列DWORDdwShareMode,//指定共享属性,由于串口不能共享,该参数必须置为0LPSECURITY_ATTRIBUTESlpsa,//引用安全性属性结构,缺省值为NULLDWORDdwCreate,//创建标志,对串口操作该参数必须置为OPENEXISTINGDWORDdwAttrsAndFlags,//属性描述,用于指定该串口是否可进行异步操作,//FILE_FLAG_OVERLAPPED:可使用异步的I/OHANDLEhTemplateFile//指向模板文件的句柄,对串口而言该参数必须置为NULL);②:voidCSerialPortAPIDlg::OnButton6(){ //TODO:Addyourcontrolnotificationhandlercodehere dakaichuankou=1-dakaichuankou; if(dakaichuankou==1) GetDlgItem(IDC_BUTTON6)->SetWindowText("关闭串口"); CStringtemp; CStringbotelv; CloseHandle(hCom); ((CComboBox*)GetDlgItem(IDC_chuankou))->GetWindowText(temp); hCom=CreateFile(temp,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); DCBdcb; mState(hCom,&dcb); ((CComboBox*)GetDlgItem(IDC_botelv))->GetWindowText(botelv); shortBotelv=atoi(botelv); =Botelv;//波特率:9600,其他:不变 mState(hCom,&dcb); m(hCom,PURGE_TXCLEAR); } else { GetDlgItem(IDC_BUTTON6)->SetWindowText("打开串口"); CloseHandle(hCom); }}{//dcbDWORDDCBlength;//sizeof(DCB)DWORDBaudRate;//currentbaudrateDWORDfBinary:1;//binarymode,noEOFcheckDWORDfParity:1;//enableparitycheckingDWORDfOutxCtsFlow
cc程序截图 来自淘豆网m.daumloan.com转载请标明出处.