第一篇:MFC個人心得
MFC個人心得
在四周時間里完成一個MFC的一個項目,個人覺得還是比較寬裕的,我們在第一周確立了項目的軟件功能和名稱,我們借鑒手機上RSS軟件的廣泛應用,想要通過MFC編寫一個PC端的RSS應用,用戶可以通過我們的軟件獲取到各大網(wǎng)站的新聞,科技精選,人文精選等等,總之,就是可以通過我們的軟件得到每天想要獲得資訊消息。
之后我們確定了各小組成員在整個團隊中的分工。想要完成這樣一個RSS軟件的開發(fā),思路還是比較明確的,首先要通過后臺獲取到各大資訊網(wǎng)站的網(wǎng)頁源代碼,再從這些源代碼中間解析出有用的信息,之后將這些信息傳遞給前臺,前臺通過一個友好的界面將信息有條有序的展現(xiàn)給用戶。我的主要工作就是開發(fā)后臺,通過解析HTML代碼獲取各類資訊。由于先前我在Java平臺下對于HTML解析的開發(fā)有一定的經(jīng)驗,所以我著手開始編寫程序是的第一件事就是搜索看是否有已經(jīng)寫好的解析HTML的C++類庫,經(jīng)過我兩天的搜索,我發(fā)現(xiàn)在C++環(huán)境下并沒有比較完好的HTML解析類庫,于是我暫時放棄了尋找現(xiàn)成的HTML解析類庫,通過MFC中的CSting類中的函數(shù)操作來自己編寫HTML解析類庫。我采用DOM型的方式解析HTML,通過兩天時間的編寫基本實現(xiàn)了HTML的解析功能并且獲取了大量網(wǎng)站的有用信息。由
于要求寫在參與MFC項目的心得體會,我就貼上具體的C++代碼了。在編寫程序的過程中,我還是覺得一個優(yōu)秀的程序員在于提升代碼的重用性與可維護性,在理解別人代碼的基礎上使用網(wǎng)上現(xiàn)有代碼是一個比較好的習慣,這樣既能夠了解其他人在編寫程序時的思路理解,開拓自己的編程理念,同時也大量節(jié)省了時間,時間的優(yōu)秀使用在編寫程序的過程中是極其重要的。
另外,在編寫MFC程序的過程中我也著實體驗到了MFC編寫程序的局限性。MFC雖然給開發(fā)者提供了一個現(xiàn)成的框架,著實便利的開發(fā)者的開發(fā)。但同樣也造成了一個巨大的問題,開發(fā)者很難開發(fā)出具有個人特色的軟件,想要重新改寫程序整體的外觀就比較困難,并且C++在編寫程序時需要開發(fā)者自己定義變量的空間開辟和回收,這點上沒有JAVA開發(fā)時來的方便,尤其是C++當中的指針機制,一不注意還是很容易造成程序錯誤的。
最后一點就是一個團隊在一個項目中的重要意義。如果這樣一個軟件完全由我一個人進行開發(fā),可能需要耗費大量時間,但是如果合理地分配給各個組員進行完成,便能取得事半功倍的效果,亦能聽取各方面的意見,是的程序更加的完善。
第二篇:Mfc個人心得體會
Mfc個人心得體會
06a13526
余思遠
時間過得很快,歷時一個月的短學期即將結束,我們小組的mfc課題也基本完成。雖然只有短短的一個月,但卻帶給我很多。在小組成員的共同努力下,基本解決了計劃中的一個個問題,要實現(xiàn)一個功能并不算復雜的計算器,也沒有想象中那么簡單。
Mfc涉及的概念很多,語法也與以前有些許不同,在c++基礎上新增的內(nèi)容也有許多。從開始編輯一個簡單的界面,通過這段時間的學習,終于感到掌握了些許了,但想更加熟練的使用,也必須付出更多的時間吧。我發(fā)現(xiàn)在編程過程中,并不能只想著眼前所負責的這一塊,許多對許多綜合多方面進行考慮,需要與自己隊友進行配合,作出合理的計劃和安排。
實踐是檢驗真理的唯一標準,這次mfc的實踐活動,讓我學習到了很多知識,彌補了很多漏洞。這個看似簡單對我們來說卻付出了很多時間和精力的程序,讓我體會到了mfc相比與單純的c++的優(yōu)越性。程序編譯過程中的有些困難雖然我們的能力范圍內(nèi)也無法解決,但是在網(wǎng)上資料的參考,讀懂他人資料、相關程序的基礎上,我們也完成了這個程序。相信這個經(jīng)歷能對以后的編程有很大的幫助。我也從此次課程設計中體會到了團隊合作的樂趣和力量。在一個團隊中揚長避短,發(fā)揮自己應有的作用,能讓我們更加容易地去克服一個又一個難關。
第三篇:MFC編程實驗個人總結報告
MFC編程實驗總結報告
知識總結+個人心得
2011年暑期MFC編程實驗報告
/ 6
MFC編程實驗個人總結報告
一、MFC類、函數(shù)等知識小結:
1、SetTimer(1, m_intLevel, NULL);在MFC程序中SetTimer被封裝在CWnd類中,調用就不用指定窗口句柄了于是SetTimer函數(shù)的原型變?yōu)椋?/p>
UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))
當使用SetTimer函數(shù)的時候,就會生成一個計時器。函數(shù)中nIDEvent指的是計時器的標識,也就是名字。nElapse指的是時間間隔,也就是每隔多長時間觸發(fā)一次事件。第三個參數(shù)是一個回調函數(shù),在這個函數(shù)里,放入你想要做的事情的代碼,你可以將它設定為NULL,也就是使用系統(tǒng)默認的回調函數(shù),系統(tǒng)默認認的是onTime函數(shù)。這個函數(shù)怎么生成的呢?你需要在需要計時器的類的生成onTime函數(shù):在ClassWizard里,選擇需要計時器的類,添加WM_TIME消息映射,就自動生成onTime函數(shù)了。然后在函數(shù)里添加代碼,讓代碼實現(xiàn)功能。每隔一段時間就會自動執(zhí)行一次。
例:
SetTimer(1,1000,NULL);
1:計時器的名稱;
1000:時間間隔,單位是毫秒;
NULL:使用onTime函數(shù)。
當不需要計時器的時候調用KillTimer(nIDEvent);
例如:KillTimer(1);
KillTimer(1);
2、typedef struct{};(1)struct{ int x;int y;}test1;好,定義了 結構 test1,test1.x 和 test1.y 可以在語句里用了。
(2)struct test {int x;int y;}test1;定義了結構 test1,test1.x 和 test1.y 可以在語句里用了。與(1)比,省寫 了 test
(3)typedef struct test
/ 6
{int x;int y;}text1,text2;
此處時說了這種結構體(類型)別名 叫 text1 或叫 text2,而不是定義了結構體變量.真正在語句里用,還要寫: text1 test1;//定義結構體變量 然后好用 test1.x test1.y 或寫 text2 test1;//定義結構體變量 然后好用 test1.x test1.y
3、Invalidate();//讓客戶區(qū)無效,即時重新繪制客戶區(qū)
void Invalidate(BOOL bErase = TRUE);
該函數(shù)的作用是使整個窗口客戶區(qū)無效。窗口的客戶區(qū)無效意味著需要重繪,例如,如果一個被其它窗口遮住的窗口變成了前臺窗口,那么原來被遮住的部分就是無效的,需要重繪。這時Windows會在應用程序的消息隊列中放置WM_PAINT消息。MFC為窗口類提供了WM_PAINT的消息處理函數(shù)OnPaint,OnPaint負責重繪窗口。視圖類有一些例外,在視圖類的OnPaint函數(shù)中調用了OnDraw函數(shù),實際的重繪工作由OnDraw來完成。參數(shù)bErase為TRUE時,重繪區(qū)域內(nèi)的背景將被擦除,否則,背景將保持不變。
4、CDC::Rectangle(左上x,左上y,右下x,右下y);使用該函數(shù)畫一個矩形,可以用當前的畫筆畫矩形輪廓,用當前畫刷進行填充。
函數(shù)原型:BOOL Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
hdc:設備環(huán)境句柄。
nLeftRect:指定矩形左上角的邏輯X坐標。
nTopRect:指定矩形左上角的邏輯Y坐標。
nRightRect:指定矩形右下角的邏輯X坐標。
nBottomRect:指定矩形右下角的邏輯Y坐標。
5、CBrush:: CBrush//畫刷類
eg:CBrush brushStick(RGB(127, 127, 127));四種構造函數(shù): CBrush();
CBrush(COLORREF crColor);
CBrush(int nIndex, COLORREF crColor);
CBrush(CBitmap* pBitmap);
/ 6
參數(shù)說明: crColor指定畫刷的前景色(RGB方式)。如果畫刷是陰影線型的,則指定陰影線的顏色。
nIndex指定畫刷陰影線采用的風格,取值如下:
HS_BDIAGONAL45度的向下影線(從左到右)
HS_CROSS水平和垂直方向以網(wǎng)格線作出陰影
HS_DIAGCROSS 45度的網(wǎng)格線陰影
HS_FDIAGONAL 45度的向上陰影線(從左到右)
HS_HORIZONTAL 水平的陰影線
HS_VERTICAL 垂直的陰影線
pBitmap指向CBitmap對象的指針,該對象指定了畫刷要繪制的位圖。
構造函數(shù)說明: 類CBrush一共有四個覆蓋的構造函數(shù)。不帶參數(shù)的那個構造函數(shù)構造一個未初始化的CBrush對象,在使用該對象之前需要另外初始化。如果使用了不帶參數(shù)的那個構造函數(shù),則必須用CreateSolidBrush、CreateHatchBrush、CreateBrushIndirect、CreatePatternBrush或CreateDIBPatternBrush來初始化返回的CBrush對象。如果使用了帶參數(shù)的構造函數(shù),則不再需要初始化CBrush對象。帶參數(shù)的構造函數(shù)在出錯時會產(chǎn)生一個異常,而不帶參數(shù)的構造函數(shù)總是成功返回。只帶有一個參數(shù)COLORREF的構造函數(shù)用指定的顏色構造一個實線型的畫刷。顏色是一個RGB值,可以用WINDOWS.H中的宏RGB構造出來。帶兩個參數(shù)的構造函數(shù)構造一個陰影線型的畫刷,參數(shù)nIndex指定了陰影線模式的指數(shù)(index)。參數(shù)crColor指定了畫刷的顏色。帶有一個CBitmap型參數(shù)的構造函數(shù)構造一個模式化的畫刷。參數(shù)指定一個位圖。該位圖應該是已經(jīng)用CBitmap::CreateBitmap、CBitmap::CreateBitmapIndirect、CBitmap::LoadBitmap或CBitmap::CreateCompatiableBitmap建立或加載的位圖。填充模式下的位圖的最小尺寸為8像素×8像素。
6、MessageBox(“Game Over!”);MessageBox(NULL,“text”,“title”,BUTTON);參數(shù)title:string類型,指定消息對話框的標題。text:指定消息對話框中顯示的消息,該參數(shù)可以是數(shù)值數(shù)據(jù)類型、字符串或boolean值。icon:Icon枚舉類型,可選項,指定要在該對話框左側顯示的圖標。button:Button枚舉類型,可選項,指定顯示在該對話框底部的按鈕。default:數(shù)值型,可選項,指定作為缺省按鈕的按鈕編號,按鈕編號自左向右依次計數(shù),缺省值為1,如果該參數(shù)指定的編號超過了顯示的按鈕個數(shù),那么MessageBox()函數(shù)將使用缺省值返回值Integer。函數(shù)執(zhí)行成功時返回用戶選擇的按鈕編號(例如1、2、3等),發(fā)生錯誤時返回-1。如果任何參數(shù)的值為NULL,4 / 6
MessageBox()函數(shù)返回NULL。
函數(shù)原型:MessageBox.Show(Text,Title,MessageBoxButtons,MessageBoxIcon ,MessageBoxDefaultButtons)
參數(shù)說明:
(1)Text:必選項,消息框的正文。(2)Title:可選項,消息框的標題。
(3)MessageBoxButtons:可選項,消息框的按鈕設置,默認只顯示【確定】按鈕。
OK――確定 OKCancel――確定和取消 AbortRetryIgnore――終止、重試和忽略
YesNoCancel――是、否和取消 YesNo――是和否 RetryCancel――重試和取消
(4)MessageBoxIcon:對話框中顯示的圖標樣式,默認不顯示任何圖標。
Question――問號 Information、Asterisk――i號 Error、Stop、Hand――錯誤號
Warning、Exclamation――!號 None――不顯示任何圖標
(5)MessageBoxDefaultButtons:可選項,對話框中默認選中的按鈕設置。
DefaultButton1――第1個button是默認按鈕
DefaultButton2――第2個button是默認按鈕
DefaultButton3――第3個button是默認按鈕
7、Memcpy(拷貝目的地,拷貝對象,拷貝長度);包含在頭文件#include
函數(shù)原型:
extern void *memcpy(void *destin, void *source, unsigned n);功能:
由source指向地址為起始地址的連續(xù)n個字節(jié)的數(shù)據(jù)復制到以destin指向地址為起始地址的空間內(nèi)。eg: int a=5,b=9;memcpy(a,b,sizeof(a));//將b按位拷給a;說明:
1.source和destin所指內(nèi)存區(qū)域不能重疊,函數(shù)返回指向destin的指針。
2.與strcpy相比,memcpy并不是遇到' 主站蜘蛛池模板: 人妻奶水人妻系列| 欧美大屁股流白浆xxxx| 熟女人妻国产精品| 国产精品久久久久久久久久久久午衣片| 国产精品人妻一区二区三区四| 午夜肉伦伦影院| 2021在线精品自偷自拍无码| 2021最新在线精品国自产拍视频| 中文人妻无码一区二区三区信息| 在线看片免费人成视频福利| 久久精品中文字幕第一页| 亚洲精品9999久久久久无码| 天天做天天爱天天做天天吃中| 欧美高潮| 么公的好大好硬好深好爽视频| 久久无码人妻精品一区二区三区| 亚洲久热无码av中文字幕| 成人精品国产区在线观看| 无码专区6080yy国产电影| 欧美大片18禁aaa免费视频| 国内精品久久久久久久影视麻豆| 中文字幕av伊人av无码av| 亚洲欧洲日本无在线码| 成年丰满熟妇午夜免费视频| av老司机福利精品导航| 极品少妇的粉嫩小泬看片| 免费a级毛片18禁网站| 变态sm天堂无码专区| 免费国产黄网在线观看| 欧美精品中文字幕亚洲专区| 激情久久av一区av二区av三区| 免费人成视频x8x8入口app| 99蜜桃臀久久久欧美精品网站| 强奷漂亮雪白丰满少妇av| 国产情侣久久久久aⅴ免费| 国产免费午夜a无码v视频| 欧美性大战久久久久久久| 国语自产免费精品视频在| 国产精品.xx视频.xxtv| 人妻饥渴偷公乱中文字幕| 亚洲最大成人av在线天堂网|