freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vc[mfc]編寫串口調(diào)試助手-全文預(yù)覽

2025-07-17 04:50 上一頁面

下一頁面
  

【正文】 //設(shè)置串口號(hào)下拉框默認(rèn)值為第一個(gè) (6)。 strOut = 。 m_intTxCnt = 0。 m_check_hextx = FALSE。 m_strFilePath = _T()。include 加入全局變量CString strIn。 int m_intTxCnt。 //申明為外部變量extern HANDLE hCom。extern CString DisplayHex2CString(CString Data)。 //申明為外部函數(shù)extern void OpenComm(int nBaud, int nData, int nStop, int nCal)。 sResult = sResult + sTemp。 //用了new分配內(nèi)存空間,要記得釋放 strncpy(pchar,Data,Data_Length)。 int Data_Length。 + 10。 (ch = 39。 else if ((ch = 39。F39。A39。939。039。 //成功轉(zhuǎn)換一組(2個(gè))字符,記錄長(zhǎng)度加1 } } } (iLength)。 } else hexdata = hexdata*16 + l_data。 } else { hexdata = ConvertHexChar(hstr)。 //取出下一個(gè)字符作為16進(jìn)制低位 if(lstr == 39。 continue。 if(cTemp == 39。 strncpy(ppchar,str,str_Length)。 str_Length = ()。senddata){ //先判斷輸入字符串是否2個(gè)字符一組 int str_Length,iLength。 } else sResult = sResult + sTemp。 iData_Length。 if (Data_Length == 0) return 。}//==========串口監(jiān)聽線程函數(shù)結(jié)束================//=================字符串轉(zhuǎn)16進(jìn)制顯示==========//字符串轉(zhuǎn)16進(jìn)制顯示的函數(shù)//傳入?yún)?shù)Data為字符串//Blank_allow為空格允許標(biāo)志,為真則代表允許加入空格//函數(shù)返回為CString的結(jié)果sResultCString DisplayCString2Hex(CString Data, bool Blank_allow){ CString sResult。 if(!dwBytesRead) { Sleep(10)。 ClearCommError(hCom,amp。}//==========串口關(guān)閉控制函數(shù)結(jié)束==================//==========串口監(jiān)聽線程函數(shù)======================UINT ThreadFunc(LPVOID pParam){// CCommassistDlg* pdlg = (CCommassistDlg*)pParam。 } return。 if(SetCommState(hCom,amp。 //=NOPARITY。 //=8。dcb)。 ComIsOK = false。 //設(shè)定寫超時(shí) = 500。 //設(shè)置輸入緩沖區(qū)和輸出緩沖區(qū)的大小都是1024 COMMTIMEOUTS TimeOuts。 return。 } RegCloseKey(key)。datalen)。 result = RegEnumValue(key, //Long,一個(gè)已打開項(xiàng)的句柄,或者指定一個(gè)標(biāo)準(zhǔn)項(xiàng)名 index++, //Long,欲獲取值的索引。 //串口名長(zhǎng)度 DWORD datalen = 0。 return。 HKEY key = NULL。HANDLE hCom。之后,可以用該變量調(diào)用接口函數(shù)設(shè)置按鈕顏色和字體。 //創(chuàng)建新字體 SetFont( p_Font )。 Invalidate()。 SetWindowText(str)。 //重繪按鈕 CButton::OnLButtonUp(nFlags, point)。//Invalidate()函數(shù)用于更新按鈕,它會(huì)自動(dòng)調(diào)用DrawItem()函數(shù)重新繪制按鈕。 //重繪按鈕 } } CButton::OnMouseMove(nFlags, point)。 //清除進(jìn)入標(biāo)志 ReleaseCapture()。 //捕獲鼠標(biāo) m_Style = 2。}//OnLButtonDown()函數(shù)是單擊鼠標(biāo)左鍵時(shí)的消息函數(shù)。//繪制工作主要利用CDC類的繪圖函數(shù)完成,主要注意在 m_Style 不同取值下表現(xiàn)出來的差別。Rect )。m_ButRect, DT_SINGLELINE | DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS)。Rect, BDR_RAISEDINNER, BF_RECT )。m_ButRect,CPoint(10,10))。 (PS_SOLID, 3, bColor )。 ( m_BackColor )。 //按下的按鈕 case 3: bColor = m_BackColor。 break。 fColor = m_ForeColor。 if( GetStyle() amp。 }//DrawItem()函數(shù)是一個(gè)關(guān)鍵函數(shù),按鈕的繪制工作就在這里進(jìn)行,它的作用相當(dāng)于對(duì)話框中的OnPaint()函數(shù)和視圖中的OnDraw()函數(shù)。 //獲取按鈕文本 int nSavedDC = pDCSaveDC()。 CButton::PreSubclassWindow()。OnLButtonUp()。 //字體指針用ClassWizard添加下列消息函數(shù):PreSubclassWindow()。 //鼠標(biāo)進(jìn)入時(shí)文字顏色(藍(lán)色) m_BackColor = RGB(230,230,230)。 //按鈕形狀風(fēng)格 b_InRect = false。 //設(shè)置文本顏色 void SetBkColor(COLORREF color)。 //字體 void DrawButton(CDC *pDC)。//鼠標(biāo)進(jìn)入時(shí)文本顏色 COLORREF m_BackColor。 //按鈕形狀(0正常,1當(dāng)前,2按下,3鎖定) bool b_InRect。、打開、關(guān)閉以及串口監(jiān)聽線程(用于自動(dòng)接收)的代碼,同時(shí)加入進(jìn)制轉(zhuǎn)換或顯示的函數(shù)。按鈕“自動(dòng)發(fā)送”ID設(shè)置為IDC_BTN_AUTOSEND。按鈕“打開串口”ID設(shè)置為IDC_COMCONTROL。自動(dòng)發(fā)送時(shí)間間隔的EDIT框ID設(shè)置為IDC_EDIT_TIMER。右鍵校驗(yàn)位對(duì)應(yīng)的Combo Box,ID設(shè)置為IDC_CAL,Type及Sort同上。如下圖5. 基本設(shè)置下面對(duì)各個(gè)按鈕及編輯框設(shè)置進(jìn)行描述右鍵串口對(duì)應(yīng)的Combo Box,ID設(shè)置為IDC_COMLIST,Type設(shè)置為Drop List,Sort不選擇(我系統(tǒng)是WIN7 64位,不選中反而自動(dòng)排序,至于XP得試試看了,以下的選擇相同)。參考界面仿照設(shè)計(jì)的界面,具體添加按鈕或編輯框等的布局步驟就不用細(xì)說了。選擇第二個(gè)CCommassistDlg,點(diǎn)擊Finish點(diǎn)擊OK。?開發(fā)平臺(tái)Visual C++,電腦是i72670Q四核8G內(nèi)存1G獨(dú)顯的筆記本,裝的win7 64位旗艦版,因此VC6兼容不是太好,有些小毛病,不過不影響編寫。下面就一步步實(shí)現(xiàn),本人純業(yè)余,只是記錄下來這個(gè)學(xué)習(xí)過程,請(qǐng)勿拍磚??梢栽陧?xiàng)目中進(jìn)行更改。3. 創(chuàng)建界面保存后便可以開始創(chuàng)建界面了。在打開按鈕旁邊加入自繪的打開和關(guān)閉圖標(biāo):先加入工具條中的Picture,然后選中右鍵看屬性,并如圖將Image選為默認(rèn)的IDI_ICON_CLOSE。右鍵停止位對(duì)應(yīng)的Combo Box,ID設(shè)置為IDC_BSTOP,Type及Sort同上。發(fā)送EDIT框ID設(shè)置為IDC_EDIT_TX。發(fā)送區(qū)的十六進(jìn)制發(fā)送的Check Box復(fù)選框ID設(shè)置為IDC_CHECK_HEXTX。按鈕“清空發(fā)送區(qū)”ID設(shè)置為IDC_BTN_CLRTX。6. 開始寫代碼. 基本思路:因?yàn)榇谕ㄐ挪糠执a我可能用在以后的單片機(jī)上位機(jī)上,因此考慮單獨(dú)形成CPP和H文件。在頭文件 中加入以下變量和函數(shù)定義:private: int m_Style。//文本顏色 COLORREF m_MouseInColor。 //按鈕尺寸 CFont* p_Font。 //設(shè)置文字 void SetForeColor(COLORREF color)。 //m_Style = 0。 //文字顏色(黑色) m_MouseInColor = RGB(0,0,255)。 //鎖定按鈕的文字顏色 p_Font = NULL。OnLButtonDown()。 //這里只做了一項(xiàng)工作,就是為按鈕設(shè)置屬性為“自繪”式,這樣,用戶在添加按鈕后,就不需設(shè)置“Owner draw”屬性了。 //獲取按鈕尺寸 if( () ) GetWindowText( m_strText )。 //繪制按鈕 pDCRestoreDC( nSavedDC )。以下就是繪制過程:void MyButton::DrawButton(CDC *pDC){ //調(diào)整狀態(tài) if( m_Style==3 ) m_Style = 0。 //bColor為邊框顏色,fColor為文字顏色 switch( m_Style ) { case 0: bColor = RGB(192,192,192)。 fColor = m_ForeColor。 break。 //鎖定的按鈕 } //繪制按鈕背景 CBrush Brush。 CPen Pen。 pDCRoundRect(amp。 pDCDrawEdge( amp。 pDCDrawText( m_strText, amp。 pDCDrawFocusRect( amp。//m_Style 的值在鼠標(biāo)響應(yīng)函數(shù)中進(jìn)行修改。 //重繪按鈕 CButton::OnLButtonDown(nFlags, point)。 //設(shè)置進(jìn)入標(biāo)志 SetCapture()。 //重繪按鈕 } else { if ( !(point) ) //鼠標(biāo)離開按鈕 { b_InRect = false。 //設(shè)置按鈕狀態(tài) Invalidate()。當(dāng)鼠標(biāo)指針離開按鈕時(shí),要清除b_InRect標(biāo)志,并且釋放捕獲的鼠標(biāo),讓其它窗口可以接收鼠標(biāo)命令。 Invalidate()。//接口函數(shù)是用 CMyButton類 定義的按鈕修改顏色、字體和按鈕文字的接口,由以下函數(shù)組成://設(shè)置按鈕文本void MyButton::SetText(CString str){ m_strText = _T()。} //設(shè)置背景顏色void MyButton::SetBkColor(COLORREF color){ m_BackColor = color。 p_FontCreatePointFont( FontHight, FontName )。使用時(shí),先在對(duì)話框中放置好按鈕,再用 ClassWizard 為按鈕添加控制變量,//并且將變量的類型設(shè)置為 CMyButton。include include include include char ConvertHexChar(char ch)。 //串口打開狀態(tài)標(biāo)識(shí),為真表示已打開,否則未打開//============自動(dòng)尋找串口函數(shù)=================================//函數(shù)功能:通過掃描注冊(cè)表來找出當(dāng)前所有物理串口//輸入?yún)?shù):無//返回類型:無//說 明:若搜索成功,則每搜到一個(gè)串口便發(fā)送消息通知主對(duì)話框,并將串口號(hào)以WPARAM傳遞void FindComm(){ //枚舉當(dāng)前系統(tǒng)中的串口 LONG result = 0。 //得到的將要打開鍵的句柄,當(dāng)不再需要句柄, //必須調(diào)用 RegCloseKey 關(guān)閉它 if( result ) { AfxMessageBox(無法獲取串口,請(qǐng)確認(rèn)是否安裝并連接串口!)。 DWORD portnamelen = 0。 datalen = 255。 //一旦返回,它會(huì)設(shè)為實(shí)際載入緩沖區(qū)的字符數(shù)量
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1