# wxClientDC

###
Module

wxClientDC

###
Module Summary

Functions for wxClientDC class

###
Description

wxClientDC is primarily useful for obtaining information about the window from outside EVT_PAINT() handler.

Typical use of this class is to obtain the extent of some text string in order to allocate enough size for a window, e.g.

Note: While wxClientDC may also be used for drawing on the client area of a window from outside an EVT_PAINT() handler in some ports, this does not work on all platforms (neither wxOSX nor wxGTK with GTK 3 Wayland backend support this, so drawing using wxClientDC simply doesn't have any effect there) and the only portable way of drawing is via wxPaintDC. To redraw a small part of the window, use wxWindow:refreshRect/3 to invalidate just this part and check wxWindow:getUpdateRegion/1 in the paint event handler to redraw this part only.

wxClientDC objects should normally be constructed as temporary stack objects, i.e. don't store a wxClientDC object.

A wxClientDC object is initialized to use the same font and colours as the window it is associated with.

See: wxDC, wxMemoryDC, wxPaintDC, wxWindowDC, wxScreenDC

This class is derived (and can use functions) from: wxWindowDC wxDC

wxWidgets docs: wxClientDC

###
Data Types

####
wxClientDC() = wx:wx_object()

###
Exports

####
new(Window) -> wxClientDC()

### Types

Window = wxWindow:wxWindow()

Constructor.

Pass a pointer to the window on which you wish to paint.

####
destroy(This :: wxClientDC()) -> ok

Destroys the object.