溫馨提示×

溫馨提示×

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

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

WinCE 大排檔第一篇

發(fā)布時(shí)間:2020-07-31 23:01:07 來源:網(wǎng)絡(luò) 閱讀:286 作者:Nowind0121 欄目:開發(fā)技術(shù)

  看了兩天的WinCE大排檔,norains寫的,總感覺懂得了點(diǎn)什么又感覺沒有,還是寫點(diǎn)東西讓這種模模糊糊的感覺變得真實(shí)和確切點(diǎn)吧。

    第一章norians主要就講了個(gè)建立一個(gè)空的窗口,用WinCE建以前我也學(xué)過,主要就是CreateWindowEx這個(gè)函數(shù)的幾個(gè)參數(shù)的配置,還有對(duì)于注冊表的封裝,在WinCE中實(shí)現(xiàn)對(duì)注冊表的讀寫操作,將這些寫起來比較復(fù)雜的函數(shù)封裝成一個(gè)個(gè)簡單的直接調(diào)用的函數(shù)。

   第二章內(nèi)容講的有點(diǎn)多,首先是對(duì)CMemDC進(jìn)行封裝,這樣用緩存DC的時(shí)候更加方便。然后講了一個(gè)iPhone手勢滑動(dòng)的特效,這個(gè)跟我之前做的文件瀏覽器的滑動(dòng)過程相似,但他用的WinCE區(qū)別在于繼承了CMemDC,自定義消息響應(yīng)函數(shù)。接著是CImager的封裝簡化,利用DirectDraw,調(diào)用CoInitializeEx初始化創(chuàng)建一個(gè)ImageFactory,然后讀取圖片文件并轉(zhuǎn)化為Stream,結(jié)合這兩者創(chuàng)建合適的Decoder(×××),CreateImageDecoder,創(chuàng)建成功后必須TerminateDecoder,接下來就可以對(duì)×××就行初始化,然后開始解碼,這個(gè)解碼和結(jié)束解碼的操作都是固定的,注意在繪制Gif文件的時(shí)候還需要?jiǎng)?chuàng)建一個(gè)線程用來動(dòng)態(tài)顯示,然后在線程中打開文件,設(shè)置當(dāng)前幀,,獲取當(dāng)前幀所需要的延遲時(shí)間,并且Sleep(),以及要知道獲取幀的總數(shù),如果當(dāng)前幀大于總數(shù),則從0開始記。

  還講了一個(gè)BMP文件的保存,這個(gè)以前我也學(xué)過一點(diǎn),BMP文件的組成是有三個(gè)部分,文件頭信息、圖片信息、數(shù)據(jù)。我們按照這三個(gè)部分信息參數(shù)給他賦值就能顯示BMP文件,不過有一點(diǎn)區(qū)別是以前說BMP文件的點(diǎn)是從左下角開始繪畫到右上角結(jié)束,而這里似乎不需要這樣,還有對(duì)于計(jì)算文件頭信息時(shí)的bfSize,需要將點(diǎn)的個(gè)數(shù)分成4的倍數(shù),即(picWidth * 3+3)/4 *4這樣即可,我覺得norains的算法有點(diǎn)復(fù)雜。

  最后講到了一個(gè)半透明的效果,這里有一個(gè)關(guān)鍵的函數(shù)是::AlphaBlend(memDC.GetDC(),0,0,sizeMemDC.cx,sizeMemDC.cy, hdcBmp,0, 0,WND_WIDTH, WND_HEIGHT,blendFunction);

     第三章首先說了一個(gè)錄音的封裝,WAV格式的文件有4大塊,RIFF WAVE、Format、Fact和Data,文件頭的信息由一個(gè)WriteFileHeader完成,然后是waveInOpen,初始化錄制緩存,然后waveInStart(開始錄制),然后通過回調(diào)函數(shù)接收消息,將錄制的聲音數(shù)據(jù)保存到文件中,最后是停止錄制。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI