依然是Windows編程
雖然Windows CE和Windows的其它版本之間確實存在差異,但不應該誇大這種差異。編寫Windows CE應用程序依然是編寫Windows應用程序。
有同樣的消息循環,同樣的窗口,大部分情況下,具有同樣的資源和控件。差異並不會掩蓋相同的地方。匈牙利命名方式是重要的相同點之一。
匈牙利命名方法
自從Charles Petzold寫《Windows 程序設計》一書開始,大部分Windows程序都採用了匈牙利命名方法,這是一種傳統和良好的命名方法。這種編程風格是Charles Simonyi多年前在微軟發明的,它給程序裏每個變量用1到2個字母的前綴來表示變量的類型。例如,命名爲Name的字符串數組應該命名爲szName,前綴sz表示變量類型是以0做終止符的字符串。匈牙利命名法的價值在於極大的提高了源程序的可讀性。其它的程序員,或者你看一段代碼,不應該重複的看變量聲明來判定變量的類型。表1-1列出了變量典型的匈牙利前綴。
表1-1 變量的匈牙利前綴
變量類型 匈牙利前綴
Integer i or n
Word (16-bit) w or s
Double word (32-bit unsigned) Dw
Long (32-bit signed) L
Char C
String Sz
Pointer P
Long pointer lp
Handle h
Window handle hwnd
Struct size cb
你可以看到Windows早期的一些痕跡。lp或者長指針,在Intel 16位編程模式下,指針分位短指針(16位偏移)和長指針(附加偏移段)。其它前綴由類型的縮寫構成。例如,刷子的句柄通常是hbr。前綴可以是組合的,就像lpsz,指出一個以0結尾的長指針。Windows API中大部分結構是採用匈牙利表示法來給它們的域命名的。本書通篇使用這種命名法。我鼓勵你在你的程序裏用這種命名方法。