VS2010Ö®MFC´®¿ÚͨÐŽ̳Ì
˵Ã÷£º±¾ÈËÒ²ÊǸոÕÈëÃÅMFC£¬²ÎÕÕһЩ×ÊÁϺÍÔ´´úÂë¾ÍʵÑé×öÁËÕâôһ¸ö´®¿ÚͨÐŹ¤¾ß£¡×ÊÁÏÀ´Ô´Ö÷ÒªÓм¦×ÄÃײ©¿ÍÍøÕ¾£¬ÀïÃæÓÐÏêϸµÄѧϰ½Ì³Ì£¡ÍøÉϵÄVS2010Ô´´úÂë¶¼±È½ÏÉÙ£¬½¨Òé´ó¼ÒÏÈÀí½âÒ»¸öÔ´´úÂëµÄ¹¹¼ÜºÍ½á¹¹ÔÙÉîÈëѧϰ£¡±¾Îĵµ¿ÉÒÔÒ»²½Ò»²½½ÌÄã´Ó½¨Á¢¹¤³Ìµ½ÊµÑéµ÷ÊÔ£¬ÊÇÒ»¸ö·Ç³£ÍêÕûµÄ½Ì³Ì£¡·Ç³£ÊʺÏÐÂÊÖÁ·Ï°£¡
¡ª¡ªºØÖÝѧԺ´óѧÉú´´Ð»ùµØÊµÑéÊÒ
ÔÚÖÆ×÷´®¿ÚͨÐÅËùÓöµ½µÄÎÊÌ⣺±à¼¿òµÄ¹ö¶¯Ìõ²»»áËæ×ÅÊý¾ÝµÄ¸üб£³ÖÔÚ×îºóÒ»ÐУ¡ ½ÓÏÂÀ´ÎÒÃÇ¿ªÊ¼½²½âMFC´®¿ÚͨÐŵÄÖÆ×÷£º Ò»¡¢
´ò¿ªVS2010Èí¼þ£¬È»ºóн¨Ò»¸öÏîÄ¿£¬ÈçÏÂͼËùʾ£»
ÎÒÃÇÒªÓõ½¾ÍÊǶԻ°¿òÄ£¿é£¬ËùÒÔÑ¡ÔñÈçÏÂͼËùʾ
×î´ó»¯¿ò×îºÃ±ðÑ¡£¬ÒòΪ±¾ÈËÏÖÔÚҲû¸ã³öÀ´£»
µã»÷Íê³É¾Íн¨ºÃÒ»¸ö¹¤³ÌÁË£¬µÈ×ÊÔ´¾ÍÐ÷Ö®ºóÎÒÃǾͿÉÒÔ½øÐÐÖÆ×÷ÁË£»
ÎÒÃÇ¿ÉÒÔ¿´µ½¾ÍÐ÷Ö®ºóµÄ½çÃæÈçÏÂͼËùʾ£¬°´ÕÕ²½Öè°ÑÔÀ´µÄ¾²Ì¬Îı¾¿òºÍÈ·¶¨°´Å¥¡¢È¡Ïû°´Å¥É¾µô£»
¶þ¡¢ÎªÎÒÃǵĶԻ°¿òÌí¼Ó¿Ø¼þ
Ìí¼ÓÁ½¸ö×éºÏ±ß¿ò£¬²¢·ÅÖúÃλÖã»
ÐÞ¸Ä×éºÏ±ß¿òÏÔʾµÄÃû³Æ£»
ÔÚ×éºÏ±ß¿òÀïÃæÌí¼Ó±à¼Îı¾¿ò£»
ÔÚÕâÒ»²½Ò»¶¨ÒªÐ¡ÐÄÑ¡ÔñÓұߵÄÊôÐÔ£»
ÕâÒ»²½ÊǰѴ®¿Ú¿Ø¼þÌí¼Óµ½¶Ô»°¿òÖÐÀ´£»
Ñ¡ÔñÎÒÃÇÐèÒªµÄ´®¿Ú¿Ø¼þÈçÏÂͼËùʾ£»
Èý¡¢Îª±à¼¿ò£¬Combox¿ò£¬´®¿Ú¿Ø¼þÌí¼Ó±äÁ¿£»
ËÄ¡¢Îª°´Å¥ºÍ´®¿Ú¿Ø¼þÌí¼Ó³ÌÐòº¯Êý
void C´®¿ÚV2Dlg::OnBnClickedButtonOpen()//´ò¿ª´®¿Ú°´Å¥³ÌÐò {
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë? CString str,str1,n; CWnd *h1;
h1=GetDlgItem(IDC_BUTTON_OPEN);
if(!m_mscom.get_PortOpen()) {
m_comb2.GetLBText(m_comb2.GetCurSel(),str1);//È¡µÃËùÑ¡µÄ×Ö·û´®£¬²¢´æ·ÅÔÚstr1ÀïÃæ str1=str1+','+'n'+','+'8'+','+'1';
m_mscom.put_CommPort((m_comb1.GetCurSel()+1)); //Ñ¡Ôñ´®¿Ú m_mscom.put_InputMode(1); m_mscom.put_Settings(str1); m_mscom.put_InputLen(1024); m_mscom.put_RThreshold(1); m_mscom.put_RTSEnable(1);
//´ò¿ª´®¿Ú
m_mscom.put_PortOpen(true); if(m_mscom.get_PortOpen()) {
str=_T(\¹Ø±Õ´®¿Ú\); UpdateData(true);
//ÉèÖÃÊäÈ뷽ʽΪ¶þ½øÖÆ·½Ê½
//²¨ÌØÂÊΪ£¨²¨ÌØÂÊ×騢ºÏ¿ò£©ÎÞУÑ飬8Êý¾Ý룬1¸öֹͣλ //ÉèÖõ±Ç°½ÓÊÕÇøÊý¾Ý³¤¶ÈΪ1024 //»º³åÇøÒ»¸ö×Ö·ûÒý·¢Ê¼þ //ÉèÖÃRTÔÊÐí
//Õâ¾ä»°ºÜ¹Ø¼ü
//Ö¸Ïò¿Ø¼þµÄcaption
//¶¨Òå×Ö·û´®
GetDlgItemText(IDC_BUTTON_OPEN,str);
}
}
}
h1->SetWindowText(str);
//¸Ä±ä°´Å¥Ãû³ÆÎª¡®¡¯¹Ø±Õ´®¿Ú¡±
else { }
m_mscom.put_PortOpen(false); if(str!=_T(\´ò¿ª´®¿Ú)) { }
str=_T(\´ò¿ª´®¿Ú\); UpdateData(true); h1->SetWindowText(str);
//¸Ä±ä°´Å¥Ãû³ÆÎª´ò¿ª´®¿Ú
void C´®¿ÚV2Dlg::OnBnClickedButtonSend()//·¢ËÍÊý¾Ý°´Å¥³Ì { }
UpdateData(true);
//¸üпؼþÊý¾Ý
m_mscom.put_Output(COleVariant(m_Editsend));//°Ñ·¢Ëͱ༿òµÄÊý¾Ý·¢ËͳöÈ¥ // TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë?
void C´®¿ÚV2Dlg::OnBnClickedButtonClean()//Çå³ýÊý¾Ý°´Å¥³ÌÐò { }
m_EditReceive=_T(\); //¸ø½ÓÊձ༿ò·¢ËͿոñ·û UpdateData(false);
//¸üÐÂÊý¾Ý
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
void C´®¿ÚV2Dlg::OnBnClickedButtonClose()//Í˳ö°´Å¥³ÌÐò { }
if(m_mscom.get_PortOpen())
m_mscom.put_PortOpen(false); CDialogEx::OnCancel();
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
void C´®¿ÚV2Dlg::OnCommMscomm1()//´®¿Ú¿Ø¼þ³ÌÐò { }
if(m_mscom.get_CommEvent()==2) { }
char str[1024]={0}; long k;
VARIANT InputData=m_mscom.get_Input(); //¶Á»º³åÇø COleSafeArray fs;
fs=InputData; //VARIANTÐͱ䨤Á¿×ª»»ÎªCOleSafeArrayÐͱäÁ¿ for(k=0;k fs.GetElement(&k,str+k); //ת»»ÎªBYTEÐÍÊý×é m_EditReceive+=str; // //SetTimer(1,10,NULL); UpdateData(false); ½ÓÊÕµ½±à¼¿òÀïÃæ //ÑÓʱ10ms // TODO: ÔÚ´Ë´¦Ìí¼ÓÏûÏ¢´¦Àí³ÌÐò´úÂë // ´®¿ÚÑ¡Ôñ×éºÏ¿ò CString str; int i; for(i=0;i<15;i++) { str.Format(_T(\),i+1); } m_comb1.InsertString(i,str); m_comb1.SetCurSel(0);//Ô¤ÖÃCOM¿Ú //²¨ÌØÂÊÑ¡Ôñ×éºÏ¿ò CString str1[]={_T(\),_T(\),_T(\),_T(\),_T(\),_T(\), { } m_comb2.SetCurSel(5);//Ô¤Öò¨ÌØÂÊΪ\ int judge_tf=m_comb2.AddString(str1[i]); if((judge_tf==CB_ERR)||(judge_tf==CB_ERRSPACE)) MessageBox(_T(\)); _T(\),_T(\),_T(\),_T(\),_T(\),_T(\)}; for(int i=0;i<12;i++) дÍêÖ®ºó±àÒë³ÌÐò Îå¡¢µ÷ÊÔÎÒÃÇдºÃµÄ´®¿Ú¹¤¾ß ÎÒÃÇÏÂÃæÓÃ51µ¥Æ¬»úµ÷ÊÔһϣ¬½á¹ûÒ²Êdzɹ¦µÄ£» m_Edit.SetSel(-1, -1); this->SetDlgItemTextW(IDC_EDIT1,m_EditReceive);//½«m_EditReceiveÄÚÈÝÏÔʾµ½IDΪIDC_EDIT1µÄ±à¼¿òµÄ×îºóλÖà m_Edit.LineScroll(m_Edit.GetLineCount()-1,0);//½«´¹Ö±¹ö¶¯Ìõ¹ö¶¯µ½×îºóÒ» ÐÞ¸ÄһϽÓÊձ༿òµÄÊôÐÔ£¬·¢Ëͱ༿ò²»ÓÃ×öÐ޸ģ» ÔÙµ÷ÊÔһϷ¢ÏÖÎÊÌâ½â¾öÁË£¡ Áù¡¢ÐÞ¸Äͼ±êºÍÈí¼þÐÅÏ¢ ÎÒÃÇÈ¥µ½ÏîÄ¿ËùÔÚµÄÎļþ¼ÐÖУ¬ÈçÏÂͼËùʾ£» The End£¡ ×÷ÕߣºÁõС¶þ 2014Äê5ÔÂ2ÈÕÐÇÆÚÎå