Posted to tcl by patthoyts at Sun Nov 04 01:02:09 GMT 2007view raw
- /* Dump some system parameters.
- *
- * Build using:
- * cl -nologo -W3 -O2 -MD -o metrics.exe metrics.c -link -release -subsystem:console
- */
- #define STRICT
- #define WIN32_LEAN_AND_MEAN
- #define WINVER 0x0501
- #define UNICODE
- #if defined(UNICODE) && !defined(_UNICODE)
- #define _UNICODE
- #endif
- #include <windows.h>
- #include <stdio.h>
- #include <tchar.h>
- #if _MSC_VER >= 100
- #pragma comment(lib, "user32")
- #pragma comment(lib, "gdi32")
- #endif
- void
- Fonts()
- {
- HDC hdc;
- NONCLIENTMETRICS ncMetrics = {0};
- hdc = GetDC(NULL);
- ncMetrics.cbSize = sizeof(ncMetrics);
- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncMetrics), &ncMetrics, 0);
- _tprintf(_T("Message font: %s %d\n"), ncMetrics.lfMessageFont.lfFaceName,
- -MulDiv(ncMetrics.lfMessageFont.lfHeight, 72, GetDeviceCaps(hdc, LOGPIXELSY)));
- _tprintf(_T("Menu font: %s %d\n"), ncMetrics.lfMenuFont.lfFaceName,
- -MulDiv(ncMetrics.lfMenuFont.lfHeight, 72, GetDeviceCaps(hdc, LOGPIXELSY)));
- _tprintf(_T("Caption font: %s %d\n"), ncMetrics.lfCaptionFont.lfFaceName,
- -MulDiv(ncMetrics.lfCaptionFont.lfHeight, 72, GetDeviceCaps(hdc, LOGPIXELSY)));
- {
- HFONT hFont;
- HGDIOBJ hOld;
- TEXTMETRIC tm = {0};
- TCHAR szFaceName[LF_FACESIZE];
- hFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
- hOld = SelectObject(hdc, hFont);
- GetTextMetrics(hdc, &tm);
- GetTextFace(hdc, LF_FACESIZE, szFaceName);
- SelectObject(hdc, hOld);
- _tprintf(_T("ANSI_FIXED_FONT: %s %d"), szFaceName,
- (MulDiv(tm.tmHeight, 72, GetDeviceCaps(hdc, LOGPIXELSY))));
- }
- }
- int
- _tmain (int argc, TCHAR *const argv[])
- {
- int n;
- #define E(x) { _T(#x) , x}
- struct {
- const TCHAR *name; int id;
- } map[] = {
- E(SM_ARRANGE), E(SM_CLEANBOOT), E(SM_CMONITORS),
- E(SM_CXBORDER), E(SM_CYBORDER),
- E(SM_CXCURSOR), E(SM_CYCURSOR),
- E(SM_CXDLGFRAME), E(SM_CYDLGFRAME),
- E(SM_CXDOUBLECLK), E(SM_CYDOUBLECLK),
- E(SM_CXDRAG), E(SM_CYDRAG),
- E(SM_CXEDGE), E(SM_CYEDGE),
- E(SM_CXFIXEDFRAME), E(SM_CYFIXEDFRAME),
- /* E(SM_CXFOCUSBORDER), E(SM_CYFOCUSBORDER), */
- E(SM_CXFRAME), E(SM_CYFRAME),
- E(SM_CXFULLSCREEN), E(SM_CYFULLSCREEN),
- E(SM_CXSIZEFRAME), E(SM_CYSIZEFRAME),
- E(SM_CXVIRTUALSCREEN), E(SM_CYVIRTUALSCREEN),
- E(SM_XVIRTUALSCREEN), E(SM_YVIRTUALSCREEN),
- };
- for (n = 0; n < sizeof(map)/sizeof(map[0]); n++) {
- _tprintf(_T("%s = %d\n"), map[n].name, GetSystemMetrics(map[n].id));
- }
- Fonts();
- return 0;
- }