EEN) ; cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
MessageBoxPrintf ( TEXT ("ScrnSize"), TEXT ("The screen is %i pixels wide by %i pixels high."), cxScreen, cyScreen) ; return 0 ; }
经由从GetSystemMetrics函式得到的资讯,该程式以图素为单位显示了视讯显示的宽度和高度。GetSystemMetrics是一个能用来获得Windows中不同物件的尺寸资讯的函式。事实上,我将在第四章用GetSystemMetrics函式向您展示如何在一个Windows视窗中显示和滚动多行文字。
本书与国际化
为国际市场准备的Windows程式不光要使用Unicode。国际化超出了本书的范围,但在Nadine Kano所写的《Developing
International Software for Windows 95 and Windows NT》(Microsoft
Press,1995年)一书中涉猎了许多。
本书中的程式写作时被限制成既可使用也可不使用定义的UNICODE识别字来编译。这包括对所有字元和字串定义使用TCHAR,对字串文字使用TEXT巨集,以及注意不要混淆位元组和字元。例如,注意SCRNSIZE中的
_vsntprintf呼叫。第二个参数是缓冲区的字元大小。通常,您使用sizeof
(szBuffer)。但如果缓冲区中有宽字元,则返回的不是缓冲区的字元长度,而是缓冲区的位元组大小。您必须用sizeof(TCHAR)将其分开。
通常,在Visual
C++(www.cppentry.com) Developer
Studio中,可使用两种不同的设定来编译程式:Debug和Release。为简便起见,对本书的范例程式,我已修改了Debug设定,以便於定义UNICODE识别字。如果程式使用了需要字串作参数的C程式库函式,那么_UNICODE识别字也在Debug设定中定义(要了解这是在哪里完成的,请从「Project」功能表中选择「Settings」,然後单击「C/C++(www.cppentry.com)」标签)。使用这种方式,这些程式就可以方便地被重新编译和连结以供测试。
本书中所有程式-无论是否为Unicode编译-都可以在Windows
NT下执行。只有极少数情况例外。本书中 |