#include <stdio.h>
{
int nIndex;
TCHAR* szLabel;
TCHAR* szInfo;
};
{
VREFRESH, TEXT("VREFRESH"), TEXT("垂直刷新率(赫兹):"),
BITSPIXEL, TEXT("BITSPIXEL"), TEXT("表示每个像素所用的位数:"),
HORZRES, TEXT("HORZRES"), TEXT("物理显示器的宽度(像素):"),
VERTRES, TEXT("VERTRES"), TEXT("物理显示器的高度(像素):"),
HORZSIZE, TEXT("HORZSIZE"), TEXT("物理显示器的宽度(毫米):"),
VERTSIZE, TEXT("VERTSIZE"), TEXT("物理显示器的高度(毫米):"),
ASPECTX, TEXT("ASPECTX"), TEXT("单个像素的相对宽度(像素):"),
ASPECTY, TEXT("ASPECTY"), TEXT("单个像素的相对高度(像素):"),
ASPECTXY, TEXT("ASPECTXY"), TEXT("像素的相对对角线长(像素):"),
LOGPIXELSX, TEXT("LOGPIXELSX"), TEXT("水平方向每逻辑英寸的象素数:"),
LOGPIXELSY, TEXT("LOGPIXELSY"), TEXT("垂直方向每逻辑英寸的象素数:"),
NUMCOLORS, TEXT("NUMCOLORS"), TEXT("设备颜色表中的项目数:"),
NUMPENS, TEXT("NUMPENS"), TEXT("设备笔数:"),
NUMBRUSHES, TEXT("NUMBRUSHES"), TEXT("设备刷子数:"),
NUMFONTS, TEXT("NUMFONTS"), TEXT("设备字体数:"),
PLANES, TEXT("PLANES"), TEXT("设备调色板数:")
};
LPSTR lpcmdLine, int nCmdShow)
{
static TCHAR szAppName[]= TEXT("DeviceCaps");
static TCHAR szClassName[]= TEXT("DeviceCapsClass");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wndclass.hCursor = LoadCursor( NULL,IDC_ARROW );
wndclass.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH );
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szClassName;
if ( !RegisterClass( &wndclass ) )
{
MessageBox( NULL, TEXT("This program requires Windows NT!"),
szAppName, MB_ICONERROR );
}
TEXT("Dispaly DeviceCaps Infomation"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL );
UpdateWindow( hwnd );
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
{
static int cxChar,cyChar;
char szBuff[10];
HDC hdc;
PAINTSTRUCT ps;
TEXTMETRIC tm;
int i;
{
case WM_CREATE:
hdc = GetDC( hwnd );
cxChar = tm.tmAveCharWidth;
cyChar = tm.tmHeight + tm.tmExternalLeading;
return 0;
hdc = BeginPaint( hwnd, &ps );
for( i = 0; i < LINENUMBER; i++ )
{
TextOut( hdc, 0, cyChar * i, DeviceCapsInfo[i].szLabel,
strlen( DeviceCapsInfo[i].szLabel ) );
TextOut( hdc, 120, cyChar * i,
DeviceCapsInfo[i].szInfo,
strlen( DeviceCapsInfo[i].szInfo ) );
SetTextAlign( hdc, TA_RIGHT | TA_TOP );
TextOut( hdc, 360, cyChar * i, szBuff,
sprintf( szBuff, TEXT( "%d" ),
GetDeviceCaps( hdc, DeviceCapsInfo[i].nIndex ) ) );
}
PostQuitMessage( 0 );
}
}