Index   Commented   Search   About

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

.

Related Links

Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET

More Online Helps

Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Pen API Programmer's Reference (penapi.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages

Free Tech Secrets ;) Copyright © 2008 Free Tect Secrets ;) greatis just4fun network just4fun