|
後面两个资料结构在WndProc中使用,分别定义了ps和rect结构。
代号简介
最後,还有三个大写识别字(见表3-3),用於不同型态的「代号」:
|
| HINSTANCE |
执行实体(程式自身)代号 |
| HWND |
视窗代号 |
| HDC |
装置内容代号 |
代号在Windows中使用非常频繁。在本章结束之前,我们将遇到HICON(图示代号)、HCURSOR(滑鼠游标代号)和HBRUSH(画刷代号)。
代号是一个(通常为32位元的)整数,它代表一个物件。Windows中的代号类似传统C或者MS-DOS程式设计中使用的档案代号。程式几乎总是通过呼叫Windows函式取得代号。程式在其他Windows函式中使用这个代号,以使用它代表的物件。代号的实际值对程式来说是无关紧要的。但是,向您的程式提供代号的Windows模组知道如何利用它来使用相对应的物件。
匈牙利表示法
读者可能注意到,HELLOWIN.C中有一些变数的名字显得很古怪。如szCmdLine,它是传递给WinMain的参数。
许多Windows程式写作者使用一种叫做「匈牙利表示法」的变数命名通则。这是为了纪念传奇性的Microsoft程式写作者Charles
Simonyi。非常简单,变数名以一个或者多个小写字母开始,这些字母表示变数的资料型态。例如,szCmdLine中的sz代表「以0结尾的字串」。在hInstance和hPrevInstance中的h字首表示「代号」;在iCmdShow中的i字首表示「整数」。
WndProc的後两个参数也使用匈牙利表示法。正如我在前面已经解释过的,尽管wParam应该更适当地被命名为uiParam(代表「无正负号整数」),但是因为这两个参数是使用资料型态WPARAM和LPARAM定义的,因此保留它们传统的名字。
在命名结构变数时,可以用结构名(或者结构名的一种缩写)的小写作为变数名的字首,或者用作整个变数名。例如,在HELLOWIN.
C的WinMain函式中,msg变数是MSG型态的结构;wndclass是WNDCLASSEX型态的一个结构。在WndPmc函式中,ps是一个PAINTSTRUCT结构,rect是一个RECT结构。
匈牙利表示法能够帮助程式写作者及早发现并避免程式中的