[轉]MFC學習

首先聲明,我可不是什麼高手,也就是剛脫貧。因爲運氣很好,買到了幾本好書,在學習過程中幾乎沒走什麼彎路,沒費什麼勁就入門了,現在一般的小程序能搞定了。看到那些因爲不知從何下手而苦苦掙扎的朋友,希望我的文章能給他們一些幫助。  
   
  學編程急不得,上來就學VC肯定碰一頭灰,說VC難就難在這點上了。如果硬上,意志堅強的話也許能挺過來,但也是會缺乏後勁,不得不回過頭來補習基礎知識。意志不堅強的話,很有可能就此放棄了,並留下一個VC難得不得了的印象。其實,只要踏踏實實一步一步來,VC也就是很簡單點事。在這裏我說一下,如果你還只是一個初中生,那麼你就應當仔細考慮一下了。首先,限於你的知識和思維能力,學學C語言還應該沒問題,但要學VC是要下相當大的功夫的。而且,你現在學到的東西將來一定會過時,所以不如把精力放在算法的研究上,畢竟這些東西永遠都不會過時。  
   
  我覺着如果走對路子,入門VC,一個暑假應該夠用了。  
   
  雖說學VC並不是傳說的那麼難,可不下些苦功夫是學不成的。在學VC前,你必須確定,你是因爲熱愛編程才學VC的,而不是出於炫耀或其他。否則,恐怕你堅持不到勝利的那一天。    
   
  對於首次接觸編程的同學,我建議最好先學一下Quick   BASIC(DOS裏就有帶,就是那個QBASIC.EXE),不用多學,知道什麼是整型什麼是浮點,以及DO...LOOP   FOR...NEXT   等最基本的知識,能算個階乘,求個積分就行了,關鍵要明白計算機是怎麼執行命令的,對編程有個感性認識。如果你對自己有自信,也可以直接學C++,應該也不會多費太多事。不過我覺着因爲有很多資料是FOR   VB的,並且網頁編程常用VB   s   cript,以後你也很有可能要用到VB,所以瞭解一些BASIC對以後也是有幫助的。而且如果只是要算個小題用QB比VC、VB之類方便多了。(找個人教一兩天應該就能搞定了吧)  
   
  之後我建議找本初高中信息學奧賽的書(有些奇怪吧)。這些書裏講解了基本的算法,寫的卻比較通俗,沒什麼高深的數學知識,容易理解。這些東西在數據結構課程中有系統嚴密的講解,所以也可等以後再學。但我覺着現階段寫一些小程序,實現些常用算法對自己的思維是很好的鍛鍊,對以後的學習大有好處。我想,能排排序,求個八皇后,算個漢諾塔,再知道深、廣度優先搜索就可以了。  
   
  如果你已經有一些編程的基礎知識了,自然就可以跳過以上兩步。  
   
  等你對編程有一定的認識後,就應該開始進軍C++了.注意,是C++而不是VC,這兩者根本不是一碼事!別買VC入門,你肯定看不懂!C++是一門語言,而VC教程則是講解如何使用MFC類庫,學習VC應建立在充分了解C++的基礎上。  
   
  我覺着比起許多花花綠綠的大全、寶典,不如買本大學的C++教程(注意:別買等級考試的教程,那是應試用的),那些教程大都經過反覆錘鍊,比較系統,很有含金量,有不會太貴。這裏我暴力推薦由清華大學出版社出版的一本《C++程序設計教程》,封面是紅色的,封底是黃色的,看起來很樸素,主編是錢能。這本書簡直是好的沒法說,還便宜(39.5元)。這本書不但告訴你語法,還告訴你爲什麼要這樣規定語法,看完之後,你會覺着那許許多多的規定是理所當然的,根本不用費心記,不但不枯燥,反而會使有一種美感。書中還有許多實際編程時應注意的問題,很有價值。這本書還配有《實驗指導》,和《習題集》,不過對於有一定編程經驗的人應該是用處不大,所以我沒買。除了這本書,我建議再買本關於傳統C語言的書,要着重以下幾個方面:編譯預處理、typedef的使用,位運算,標準庫函數的使用(最好有一個比較詳細的列表,用的時候好查)。  
   
  C++的標準類模板是個不錯的東東,不過對於學習MFC卻沒有幫助,原因是MFC太落後了(^_^),可以先放一放,要不要學等搞定MFC時再作決定。雖然我沒怎麼學過,不過覺着它挺不錯,而且代表了一種發展方向。雖然學着費勁(那東西幾乎沒一點C++的樣子,簡直是在學新語言),但掌握它可使編程輕鬆不少。  
   
  學完了C++,該學VC了吧?別急,先找本WIN32編程的書,這次沒什麼講究,看着差不多的,便宜一些的就行了,如果有對於VC集成環境的介紹就最好了。WIN32編程是指用WINDOWS   API編程,MFC是將衆多的API函數進行了封裝的類庫,用起來方便了不少,但如果沒有一些API編程基礎,對相關概念不瞭解,學起MFC來可能會很費解。相信我,將來你不會覺着學API編程是浪費時間的。API函數有兩千多,要都學會累死。其實你只要知道如何創建窗口、對話框、控件、消息循環,瞭解了句柄的含義就差不多了,最好再瞭解一點GDI編程。這個階段的關鍵是要理解WIN32程序是如何運作的,把握各種窗口間的關係。因爲你以後應該很少直接用WIN32   SDK編寫程序,所以關鍵是理解整體結構,記住幾個函數並沒有什麼意義。函數用的時候可以現查。手頭應有一份比較全面的資料。中文的API函數大全好像只有For   VB的,不過看起來應該是沒有任何障礙。英文的資料MSDN中就有,相當全面,也比中文的詳細一些。我建議用中文資料快速查找,有問題再看英文。(我忘了我的html版中文API大全是從哪下載的了,不過書店有售,白皮的,很厚一本,很貴就是了。誰想要可以與我聯繫[email protected])  
   
  對於想學遊戲編程的朋友注意:從現在起,你不必去學什麼MFC了,相信我,那東西除了讓你頭疼一點用處都沒有。遊戲都使用Win32   SDK編出來的。現在,你要學的是DirectX。我推薦老王翻譯的DirectDraw文檔(www.imagic3d.com),前面有一些老王自己寫的基礎知識,很適合入門,   在此特別感謝老王的辛勤勞動。我還買了一本《DirectX   7   速成教程》,機械工業出版社出版,封面封底都是紅色。除了翻譯慘了點還算不錯,介紹的挺全面,還有一些遊戲編程基礎知識。如果你想圖省事,可以考慮用雲風編寫的風魂遊戲庫,很方便的(www.codingnow.com   對雲風的辛勤勞動表示感謝).不過我仍然建議至少了解一下DirectX.這裏說一下,很多朋友抱怨找不到有關DirectX的書籍,我告訴你,別去編程書籍裏找,去多媒體制作書籍那找,還要把眼睛瞪得大大的、圓圓的。Director..   Director..   DirectX!!!知道了吧,書店工作的人眼神都不大好,我也是有一天沒事瞎轉才發現的,嚇了我一大跳。發現這個祕密後我發現其實有不少關於DirectX的書,只是一般人找不到罷了。學會了DirectX,就可以開始奮鬥了,剩下的問題就只有積累經驗了。  
   
  對於志向是應用軟件的朋友,打好了基礎,現在進軍VC的障礙都已掃清了。不過還是應做好充分的思想準備,事情不會那麼順利的。剛開始,你就要面對一個瓶頸,大量的緊密關聯的知識,使你必須一下理解一個整體,而很難一點點來。可以說,學VC最難的就是剛開始。情況有些類似於你第一次創建窗口時面對的那長長的程序,只不過更糟糕就是了。很多人就是在此被一大團知識噎着,放棄了學習。事實上,這幾乎是Windows編程的一大特點,在WIN32編程時你就應當有所體會,而DirectX和COM都有類似問題。記住,一定要堅信:突破了這個瓶頸之後便是一片海闊天空,而有着紮實基礎的你是一定能闖過去的。  
  我的建議是,不要等徹底弄明白一句纔看下一句,而是知道好像怎麼回事就向下看,實在看不懂也硬着頭皮往下看,等能比貓畫虎的作出個菜單、對話框時便回過頭再看一遍,幾遍之後應該就可以大概明白MFC程序的運作了。注意:這裏有個關鍵,一定要用心體會面向對象編程的精神,努力將眼前的程序與你之前所學的知識聯繫起來。通過比較成員函數和對應的API函數間的區別,嘗試去理解MFC是怎樣封裝相關的API的。例如,相當多的類將句柄封裝了起來,在傳遞參數時加以省略,這就是一個很重要的特性。MFC中有許多的宏,看起來很奇怪,但你不必理會其實現方法,只要知道如何使用便可,這點也很重要。還有,千萬不要過於依賴ClassWizard,對於其生成的代碼要自己進行分析,偷懶就不能真正理解MFC。  
   
  這裏我介紹一種學法,不過學法這種東西因人而異,所以還要根據個人的情況決定。開始時,教程讓怎麼辦就怎麼辦,比貓畫虎的作出個菜單、對話框,然後試着添加控件。等能不看教程便做到這些時,開始逐字逐句的試着理解MFC程序的組織。若看不懂就跳過看下面的。就這樣一遍一遍來。如果覺着頭大就先歇上兩天,等清醒了再接着來.最好在這期間多找些介紹MFC框架的文章。注意:先不要碰有關文檔/視結構的東西,否則你會更頭大。然後便可試着寫個定時器、名片夾之類的小東西,熟悉一下各種控件的使用。  
   
  突破了開始的瓶頸之後再學下去便會越學越容易,因爲你可以一點一點的積累知識,而不用擔心被噎着了。再過不久,你就不得不開始使用API函數完成一些功能,如在系統托盤加圖標,自畫列表框等。這時,你也會體會到學習WIN32編程的好處了,沒學過的人很可能就此卡殼。  
   
  關於VC的教程遍地都是,但魚龍混雜,市場烏煙瘴氣,騙錢的書真不少。有些書很厚,內容當然也很全,對老鳥很不錯,但對於初學者似乎有些浪費錢,因爲裏面絕大部分的東西MSDN中都有,並且初學者用不着。老外寫的書一般內容不錯,但翻譯水平是個問題。如果翻譯糟糕可夠你受的,加上價格不菲,我也不建議初學者買。還有些什麼傻瓜書、圖解之類,好像是面向初學者,時則爲騙錢,你看完後除了那幾個例子什麼也不會作。如果你看到有一本書花了大量的篇幅圖文並茂,生動形象的介紹如何畫圖,輸出文字,別買!騙錢的!(:-<   我就被坑去42塊現大洋)那些花哨的東西對初學者除了轉移注意力沒任何好處。如果你真的對GDI繪圖很感興趣,就去找些專門書籍,比那些書好多了。最好買名字類似於VC應用,VC編程之類比較正式的,圖不要太多的,字不要太大的,最好是有較多的控件介紹的。當然,文字流暢也是很重要的。書不要買太多,最多兩本,因爲這些書內容都差不多,買多了的話東看西看反倒沒好處。在這裏,我建議初學者先別急着掏錢,而是去VC王朝(http://vcdynasty.yeah.net/)下載本MFC教程。雖說是網上教程,卻當相當有水準。不但內容比較全面,還一句廢話也沒有(這裏感謝作者的辛勤勞動)。只是可惜對GDI沒有一點介紹,
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章