程式設計之路 (轉)

amyz發表於2007-11-16
程式設計之路 (轉)[@more@]

設計之路[Road of Programming]
  小學時便知道,認為是一個神秘莫測的東西,只有高智商的人才知道如何與顯示器“說話”;
  初中時知道了程式設計師,一個很神聖的工作,需要很高的學歷和智商;
  高中時第一次摸了摸計算機的鍵盤,說不出的感覺;
  大學開始真正接觸計算機,在Dos下使用Borland Turbo Pascal寫下了人生第一個程式;
 
  在今時今日,計算機已經很普通了,小學生也熟練的操作著計算機(十幾歲就寫下天才程式的神童
們更是讓我汗顏)。程式設計師也很普通了,把程式設計帶入了普通大眾的工作學習甚至娛樂
中(Microsof 功不可沒)。儘管如此,還是有很多朋友想成為一名程式設計師(不管你的目的是什麼,炫耀
或是成就自我),在RAD開發工具的帶動下,你寫程式的願望得到最的實現,你的“成績”讓你不止一
次的歡呼雀躍。

  在RAD開發工具中,如Visual Basic,你不需要寫一行程式碼就可以生成一個環境下標準的窗體(
當然它什麼也不做),而在沒有RAD工具和RAD工具剛剛開始萌芽的時候,程式設計師為了在Windows下面建立這樣
一個窗體頗費周折,更早的時候,程式設計師為了在Dos下面寫一個類似Turbo C 或 Turbo Pascal 的(只是生成
一個什麼也不做的IDE,就需要1000-2000行程式碼)。程式設計是一個艱苦的過程(求伯君設計的過程
就是一個例證),在今天很多朋友熱衷於去追逐最新的技術、技巧,這本是沒有錯的,但需要你有紮實的
基本功。比如,將程式圖示最小化到托盤是一個常用的技巧,一般來講,你不會只是為了這樣做而這樣做,
你還會在實現這一功能的同時實現滑鼠雙擊、單擊該圖示(左鍵或右鍵)調出指定窗體、彈出選單等操作。實現這
一功能的最簡便方法應該是使用他人已經寫好的,但不夠靈活。更多的時候,我們是自己 Windows
來實現這一功能的,靈活但麻煩一些。在中這個問題得到了較好的解決。在C#中,有一個NotifyIcon和
NotifyIcon類(System.Windows.Fomrs.NotifyIcon),使用它們可以輕鬆的滿足你的要求。那麼在此之前程式設計師
是如何完成這一功能的呢?在 Windows SDK 下,程式設計師用到了_NotifyIcon()這個API(其原型為:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(

  D dwMessage,  // message identifier
  PNOTIFYICONDATA pnid // pointer to structure
  );),
並且要為此函式的pnid引數進行賦值(其原型為:
typedef struct _NOTIFYICONDATA { // nid 
  DWORD cbSize;
  HWND hWnd;
  UINT uID;
  UINT uFlags;
  UINT uCallbackMessage;
  HICON hIcon;
  char szTip[64];
} NOTIFYICONDATA, *PNOTIFYICONDATA;
),然後你才可以在你的程式中成功呼叫此API,完成你的功能。為了能夠響應你的滑鼠事件(實現滑鼠雙擊、
單擊該圖示(左鍵或右鍵)調出指定窗體、彈出選單等操作),你要對映滑鼠相應的訊息,然後在其中加入你
想要它的操作。這樣就完成了一個簡單的系統托盤程式。相比較而言,使用C#要簡單一些。

  我們不是為了追逐最新的流行的技術才寫程式的,學習最新的技術可以使我們的程式設計的理念得到提高,
使程式在更為廣泛的領域得到應用,讓我們的付出得到最大的收穫。當然不是為了向別人炫耀。

  學習的過程不是一蹴而就的,它需要長期的歷練、積累和沉澱,特別是開發。心浮氣躁、急功近利是
萬萬不可取的。當我們在學習新的技術時我們應該更深的去理解該技術的原理,當我們應用一種技巧時應當不
僅知其然也要知其所以然。C#中實現系統托盤技巧之所以簡單是因為 NotifyIcon類中封裝了大部分在此之前需要
自己手工完成的東西,為我們做的越多,我們使用起來也就越方便。不知其所以然,你也可以完成一定的
功能,但不會成為一名合格的程式設計師,合格的程式設計師必須知其所以然。

  新的開發工具(語言)大大提高了我們的工作,但要在實際中應用好它們是不容易的。學以致用是軟體開
發不變的宗旨。
  程式設計之路一定不平坦,需要你有足夠的耐心和毅力。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982705/,如需轉載,請註明出處,否則將追究法律責任。

相關文章