Obtaining a Private Display Device Context

An application performing numerous drawing operations in the client area of its window must use a private display device context. To create this type of device context, the application must specify the CS_OWNDC constant for the style member of the WNDCLASS structure when registering the window class. After registering the window class, the application obtains a handle identifying a private display device context by calling the GetDC function.

The following example shows how to create a private display device context.

#include <windows.h> /* required for all Windows apps */

#include <stdio.h>

#include <string.h> /* strtok */

#include "dc.h" /* specific to this program */

/* Function prototypes */

BOOL InitApplication(HINSTANCE);

long FAR PASCAL MainWndProc(HWND, UINT, UINT, LONG);

/* Global variables */

HINSTANCE hinst; /* handle of current instance */

HDC hdc; /* display device context handle */

.

.

.

BOOL InitApplication(HINSTANCE hinstance)

{

WNDCLASS wc;

/*

* Fill in the window class structure with parameters

* describing the main window.

*/

wc.style = CS_OWNDC; /* Private-DC constant */

wc.lpfnWndProc = (WNDPROC) MainWndProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hinstance;

wc.hIcon = LoadIcon((HINSTANCE) NULL,

MAKEINTRESOURCE(IDI_APPLICATION));

wc.hCursor = LoadCursor((HINSTANCE) NULL,

MAKEINTRESOURCE(IDC_ARROW));

wc.hbrBackground = GetStockObject(WHITE_BRUSH);

wc.lpszMenuName = "GenericMenu";

wc.lpszClassName = "GenericWClass";

/* Register the window class and return the

* resultant code.

*/

return RegisterClass(&wc);

}

LRESULT APIENTRY MainWndProc(

HWND hwnd, /* window handle */

UINT message, /* type of message */

WPARAM wParam, /* additional information */

LPARAM lParam) /* additional information */

{

PAINTSTRUCT ps; /* paint structure */

/* Retrieve a handle identifying the private DC. */

hdc = GetDC(hwnd);

switch (message) {

case WM_PAINT:

BeginPaint(hwnd, &ps);

.

. /* Draw and paint using private DC. */

.

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database