亚洲v欧美v国产v在线成_制服丝袜中文字幕丝袜专区_一区二区三区韩国电影_激情欧美一区二区中文字幕

編程實(shí)習(xí)心得

  實(shí)習(xí)心得怎么寫,以下由中國人才網(wǎng)提供一篇實(shí)習(xí)心得范文,提供給應(yīng)屆畢業(yè)生寫心得時(shí)參考的實(shí)習(xí)心得范文。

  來公司實(shí)習(xí)已一個(gè)多月了,在這段時(shí)間里,我主要學(xué)習(xí)EVC下的MFC編程,下面主要談?wù)剬W(xué)習(xí)的經(jīng)驗(yàn)以及心得體會(huì)。

  在編程過程中遇到了較多的問題,解決問題的過程是漫長而艱苦的,然而在問題得到解決的一剎那是很快樂的。在此舉出數(shù)個(gè)例子與大家分享:

  1. 音樂播放—>滾動(dòng)條的繪制

  在開始繪制滾動(dòng)條的時(shí)候,為了簡(jiǎn)便以及縮短開發(fā)時(shí)間,我打算直接從VC默認(rèn)的標(biāo)準(zhǔn)滾動(dòng)條CScrollBar派生,然后對(duì)其進(jìn)行所有者自繪(Owrner Draw),將圖片貼上去,然而CScrollBar并不如CButton般好繪制,在經(jīng)過近一天的嘗試后始終無果,很是煩躁,后來在聽從陳曦老師的建議后,決定還是從CStatic派生自繪,然后再加上一些鼠標(biāo)、鍵盤的相應(yīng)消息響應(yīng)處理函數(shù)以實(shí)現(xiàn)滾動(dòng)條的功能。

  在確定這一思路后,我便開始著手代碼的實(shí)現(xiàn):首先實(shí)現(xiàn)了一個(gè)圖片繪制函數(shù)LoadBitmapToScroll(),用于將滾動(dòng)條的滑塊、上下箭頭以及滾動(dòng)條底色畫到確定的區(qū)域。由于滑塊的位置會(huì)不斷的發(fā)生變化,因此將不能簡(jiǎn)單地將滾動(dòng)條底色先畫好,然后將滑塊放到某一固定位置,因此我定義了一個(gè)類成員變量nThumbTop用于確定滑塊頂部到滾動(dòng)條頂部的距離并截取了一小塊滾動(dòng)條底色將其填充到滑塊到兩側(cè)箭頭的所有區(qū)域以實(shí)現(xiàn)滾動(dòng)條的變化。然后捕獲WM_PAINT消息調(diào)用LoadBitmapToScroll()使對(duì)窗口進(jìn)行重繪時(shí)將滾動(dòng)條顯示出來。這樣當(dāng)創(chuàng)建一個(gè)滾動(dòng)條對(duì)象的時(shí)候,便能夠?qū)⑵浜?jiǎn)單地顯示出來了。

  要響應(yīng)用戶的外部輸入,則只需要捕獲消息即可,比如WM_LBUTTONDOWN便可以判斷是否有鼠標(biāo)左鍵按下并可通過鼠標(biāo)位置判斷點(diǎn)擊的是向上的箭頭、向下的箭頭還是滑塊。另外由于滾動(dòng)條是不獨(dú)立存在的,它一般會(huì)與一個(gè)窗口做伴,比如列表以控制其顯示內(nèi)容或區(qū)域。因此,我在滾動(dòng)條類中定義了一個(gè)pList指針變量指向滾動(dòng)條要控制的窗口對(duì)象,在鼠標(biāo)點(diǎn)擊滾動(dòng)條的上下箭頭時(shí),通過向pList指向的對(duì)象發(fā)送WM_VSCROLL消息以控制窗口區(qū)域的上翻或下翻。

  如此,一個(gè)具有美觀界面及基本功能的滾動(dòng)條大體上已經(jīng)實(shí)現(xiàn)了。整個(gè)滾動(dòng)條的繪制耗費(fèi)了將近兩天時(shí)間,盡管時(shí)間較長,但還是受益匪淺,整個(gè)繪制過程讓我明白了:“一切皆有可能”,沒有什么是不能實(shí)現(xiàn)的,只要它在現(xiàn)實(shí)生活中存在,很多東西表面上看起來很復(fù)雜,就象這個(gè)自定義的滾動(dòng)條,只要將其功能進(jìn)行分解然后一步步實(shí)現(xiàn)便可以了。

  2. 透明文字的實(shí)現(xiàn)

  由于嵌入式系統(tǒng)的特殊性,EVC并不具備VC的所有功能,透明文字的輸出就是其中一例。VC下只要簡(jiǎn)單地通過SetBkmode(TRANSPARENT),然后在控件窗口區(qū)域內(nèi)獲取設(shè)備上下文DC,通過該DC調(diào)用DrawText()即可將想要顯示的文字在給定位置顯示,然而EVC在CStatic、CListBox等一般控件下設(shè)置背景為透明色是不可行的,在糾纏了數(shù)個(gè)小時(shí)后,發(fā)現(xiàn)EVC雖然不能簡(jiǎn)單地設(shè)置背景模式為透明,卻可以設(shè)置背景顏色為一給定的顏色,最后還是采用“先截取背景顏色,然后繪制文字,最后以原背景色設(shè)置為背景色”的方式解決。即:

  dc.SetBkColor( COLORREF ); //設(shè)置背景顏色

  dc.SetTextColor(COLORREF ); //設(shè)置字體顏色

  dc.DrawText( … ); // 繪制文字

  3. 模塊功能的設(shè)計(jì)

  在軟件設(shè)計(jì)的過程中,我深刻地體會(huì)到:一個(gè)模塊對(duì)擴(kuò)展是開放的,對(duì)修改是關(guān)閉的。在剛開始編程的時(shí)候,只是簡(jiǎn)單地將一些應(yīng)該實(shí)現(xiàn)的功能予以實(shí)現(xiàn),以致于后來在得知UI有所變化時(shí)又得重新編寫代碼浪費(fèi)了較多時(shí)間,因此在進(jìn)行軟件設(shè)計(jì)的時(shí)候必須考慮到軟件需求是一直在變更的。同時(shí)應(yīng)當(dāng)優(yōu)先使用聚合,而不是繼承,否則就會(huì)出現(xiàn)類層次很深的問題,從而造成所謂的類爆炸。比如:在我進(jìn)行各類自定義控件的設(shè)計(jì)過程中,將一些類剝離開來,在使用的時(shí)候直接定義各個(gè)類對(duì)象便可,從而避免了類層次過深的現(xiàn)象。

  總而言之,來公司的這個(gè)月,是我最充實(shí)的一個(gè)月,在這里學(xué)會(huì)的不僅僅是EVC的MFC編程技能,更重要的是我學(xué)會(huì)了如何學(xué)習(xí),體會(huì)到了一個(gè)產(chǎn)品應(yīng)有的嚴(yán)謹(jǐn)(界面美觀、功能強(qiáng)大以及差錯(cuò)率較小等)以及產(chǎn)品開發(fā)過程中問題考慮的周到充分。

  在這里我要感謝大家一個(gè)月對(duì)我無微不至的關(guān)懷與幫助!再次感謝!

  本文章到此結(jié)束,如果您覺得文章內(nèi)容好,請(qǐng)記住我們的網(wǎng)站:http://fnhaliao.com/shixi/

本文已影響6827
上一篇:媒體實(shí)習(xí)心得 下一篇:研究室實(shí)習(xí)心得

相關(guān)文章推薦

|||||