依然是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中大部分结构是采用匈牙利表示法来给它们的域命名的。本书通篇使用这种命名法。我鼓励你在你的程序里用这种命名方法。