亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

通信協議之點陣的解析和showWindow問題的解決

發布時間:2020-06-18 02:55:16 來源:網絡 閱讀:254 作者:Nowind0121 欄目:開發技術

 經過幾天的學習,終于將點陣解析出來了,在這里總結一下,點陣的分布是一位Head,2位Length,一位Command,1217位Pargram,和2位checkNum,因此解析的時候只需要判斷1217位Pargram是不是Length的值就行了,頭是以0XAA開頭的,我們只要建立一個足夠大的數組存這1217位Pargram,unsigned char LatData[1216];//點陣數據(半屏),注意第一個字節為判斷上半屏或者下半屏,因此不存到這個數組里面,但是檢驗碼的時候需要把它加進去,這里完成后出現點陣分布很亂的局面,也就是顯示的并不是我要的點陣,經過檢查發現是我存的這個數組沒有初始化,還有一個原因是下半屏發的點陣中在內容里有0XAA,由于在判斷的時候沒有判斷好,導致只顯示了一半的內容,因此在判斷是不是點陣頭的時候要if(buf == 0XAA && m_index ==0),這樣點陣就解析完了。得到點陣解析的數據后將它放到一個結構體中,確定上半屏和下半屏的點陣數據都存放到這個結構體后,再將這個結構體存放到一個隊列中,接下來就要顯示點陣了,這里我們定義一個定時器,然后讓他顯示點陣,由于點陣半屏內容有1216*8= 9728個點,利用x=i%256;得到X軸的坐標,y=i/256;得到y軸的坐標,然后在點為1的地方畫::SetPixel(Latdc,x,y,RGB(0,255,255));這里只能畫256*76個點,因此我們要放大,利用TransparentBlt函數就能達到這個效果。這樣點陣就顯示完成了。而在我們的車載上有三種狀態,Radio、CD和Aux,我們點擊這幾個按鈕,從button中發送指定的十六進制命令給Can,寫入Can后,由于之前在Can中有一個線程在不停的讀串口中的數據,并且分析和解析數據,這樣就能解析出我發送的字符了,在這里有個問題就是我的showWindow經常會出現不可思議的問題,我讓他SW_SHOW或者SW_HIDE都沒有反應。

showWindow問題終于解決了,為什么經常Window顯示不出來的原因是在對窗口初始化的時候我用的是MoveWindow(0, 0, 800, 480);,而在這里我必須要用::SetWindowPos(this->m_hWnd,HWND_TOPMOST,0,0,800,480,SWP_HIDEWINDOW);這兩個的區別是:

MoveWindow只能設置窗口的大小和位置;SetWindowPos擁有MoveWindow的全部功能之外,還可以設置窗口的層疊關系(如,把指定的窗口放在所有窗口的最上層--alwaysontop就可以用這個函數、或者把指定的窗口放在另一個窗口的下層,等等)。你完全可以不用MoveWindow,而只用SetWindowPos;但是,在只要設置窗口大小或位置的情況下,你也完全可以使用MoveWindow。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

任丘市| 玉田县| 依安县| 广河县| 浑源县| 西宁市| 西安市| 通海县| 慈利县| 阿拉善右旗| 夏邑县| 景谷| 枣阳市| 昆明市| 昌图县| 东兰县| 武强县| 海丰县| 武胜县| 斗六市| 巴林右旗| 三门峡市| 兴安县| 灵川县| 确山县| 嵩明县| 纳雍县| 易门县| 邓州市| 湖南省| 肇州县| 邯郸县| 博湖县| 邵阳县| 新巴尔虎右旗| 景德镇市| 定远县| 苍溪县| 鄂尔多斯市| 綦江县| 高阳县|