---
name: "wxClientDC"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/wxClientDC"
---

# wxClientDC(3erl)

Functions for wxClientDC class

## NAME

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