格式化讯息方块

王朝百科·作者佚名  2010-01-04  
宽屏版  字体: |||超大  

程式2-1所示的SCRNSIZE程式展示了如何实作MessageBoxPrintf函式,该函式有许多参数并能像printf那样编排它们的格式。

程式2-1 SCRNSIZE

SCRNSIZE.C

/*---------------------------------------------------------------------------

SCRNSIZE.C -- Displays screen size in a message box

(c) Charles Petzold, 1998

----------------------------------------------------------------------------*/

#include <windows.h>

#include <tchar.h>

#include <stdio.h>

int CDECL MessageBoxPrintf (TCHAR * szCaption, TCHAR * szFormat, ...)

{

TCHAR szBuffer [1024] ;

va_list pArgList ;

// The va_start macro (defined in STDARG.H) is usually equivalent to:

// pArgList = (char *) &szFormat + sizeof (szFormat) ;

va_start (pArgList, szFormat) ;

// The last argument to wvsprintf points to the arguments

_vsntprintf ( szBuffer, sizeof (szBuffer) / sizeof (TCHAR),

szFormat, pArgList) ;

// The va_end macro just zeroes out pArgList for no good reason

va_end (pArgList) ;

return MessageBox (NULL, szBuffer, szCaption, 0) ;

}

int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

int cxScreen, cyScreen ;

cxScreen = GetSystemMetrics (SM_CXSCREEN) ;

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视窗中显示和滚动多行文字。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有