Device Context

A device context is a structure that defines a set of graphic objects and their associated attributes, and the graphic modes that affect output. The graphic objects include a pen for line drawing, a brush for painting and filling, a bitmap for copying or scrolling parts of the screen, a palette for defining the set of available colors, a region for clipping and other operations, and a path for painting and drawing operations.

Low layer details

Device Context is an abstraction in windows to access any output hardware like graphic adapters or printers which displays text and graphical drawings. Windows Operating system returns a handle to the device context of the device. Device context is a structure in kernel mode of the operating system where it stores the attributes and other properties of the device. Hardware may vary in many aspects but device context is common for all for any particular device type. Hardware vendors supply device dependent device drives or miniport drivers for their hardware which takes care of the lower layer access and manageability of the hardware. The upper layer is the Win32 APIs to access this hardware from application layer. Windows provides a set of APIs to access a type of device through this device context. Lower layer access and manageability may vary from hardware to hardware and from vendor to vendor but methods and steps via windows API are same for accessing same type of device. It creates a uniform access point for device hardware.

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 ...