We are discussing some of the Win32 API to retrive some system paramerts and settings. We get verious Windows settings using GetSystemMetrics() function. GetDeviceCaps, GetTextMetrics, GetTextFace are the functions to retrieve the settings from screen and printer devices. Lets discuss these functions and see the utilities of these functions with one practical example for each.
GetDeviceCaps function
The GetDeviceCaps function retrieves device-specific capabilities and information for the specified GDI device.
Syntax
int GetDeviceCaps( HDC hdc, int nIndex );
Input & Output
Handle to the device context and the capability index number (see MSDN for list of capabilities). It returns the value of the corresponding capability.
GetDeviceCaps example
GetDeviceCaps output
Printer page dimension is 5100x6600 px Press any key to continue
GetSystemMetrics function
Retrieves the specified system metric or system configuration setting.
Syntax
int WINAPI GetSystemMetrics( int nIndex );
Input & Output
The system metric index which is required (see MSDN for list of values). It returns the value of the corresponding system parameter.
GetSystemMetrics example
GetSystemMetrics output
Primary desktop screen is 1366x768 px Press any key to continue
GetTextMetrics function
The GetTextMetrics function fills the specified buffer with the metrics for the currently selected font.
Syntax
BOOL GetTextMetrics( HDC hdc, LPTEXTMETRIC lptm );
GetTextFace function
The GetTextFace function retrieves the typeface name of the font that is selected into the specified device context. Lenght of the string buffer and buffer pointer for retrieving the font name are given as the input.
Syntax
int GetTextFace( HDC hdc, int nCount, LPTSTR lpFaceName );
GetTextMetrics GetTextFace example
Output
Desktop font name is "System" font size = 16 Press any key to continue
About our authors: Team EQA
Further readings
Where is WinMain() function in MFC application ?
MFC hides WinMain in its framework and includes source file on WinMain(). This explains how framework calls global CWinApp::Initinstance() from entry WinMain.
What is the utility of CWinApp class?
This is constructed during global C++ objects are constructed and is already available when Windows calls the WinMain function, which is supplied by the ...
Basic steps in Win32 GUI Application with source code.
Define a custom Window class structure, Register the class name, CreateWindow, Show windows and write message get and dispatch loop statements. Define the Window CallBack procedure and write the handlers.
What is a Window CallBack procedure and what is its utility?
DispatchMessage() is a API which indirectly triggers the Window CallBack procedure. Message structure members from this function are passed to the CallBack procedure. CallBack procedure should implement event handlers depending on the need of the application.
What are LPARAM and WPARAM in window proc function?
LPARAM and WPARAM are the two parameters in Window CallBack procedure. They signifies parameters of various events. They are used in handing individual events.
What are the basic steps of a typical MFC based application?
We need to write WinMain and need to follow all these in a Win32 application. However we need not to write much if we are writing an application with MFC ...