.. wxPython Phoenix documentation This file was generated by Phoenix's sphinx generator and associated tools, do not edit by hand. Copyright: (c) 2011-2020 by Total Control Software License: wxWindows License .. include:: headings.inc .. _wx.ClientDC: ========================================================================================================================================== |phoenix_title| **wx.ClientDC** ========================================================================================================================================== :ref:`wx.ClientDC` 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. :: # Create the initially empty label with the size big enough to show # the given string. dc = wx.ClientDC(self) text = wx.StaticText( self, size=dc.GetTextExtent("String of max length"), style=wx.ST_NO_AUTORESIZE ) :ref:`wx.ClientDC` objects should normally be constructed as temporary stack objects, i.e. don't store a :ref:`wx.ClientDC` object. A :ref:`wx.ClientDC` object is initialized to use the same font and colours as the window it is associated with. .. note:: While :ref:`wx.ClientDC` 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 :ref:`wx.ClientDC` simply doesn't have any effect there) and the only portable way of drawing is via :ref:`wx.PaintDC`. To redraw a small part of the window, use :meth:`wx.Window.RefreshRect` to invalidate just this part and check :meth:`wx.Window.GetUpdateRegion` in the paint event handler to redraw this part only. .. seealso:: :ref:`wx.DC`, :ref:`wx.MemoryDC`, :ref:`wx.PaintDC`, :ref:`wx.WindowDC`, :ref:`wx.ScreenDC` | |class_hierarchy| Class Hierarchy ================================= .. raw:: html
Inheritance diagram for class ClientDC:
| |sub_classes| Known Subclasses ============================== :ref:`wx.PaintDC` | |method_summary| Methods Summary ================================ ================================================================================ ================================================================================ :meth:`~wx.ClientDC.__init__` Constructor. ================================================================================ ================================================================================ | |api| Class API =============== .. class:: wx.ClientDC(WindowDC) **Possible constructors**:: ClientDC(window) ClientDC is primarily useful for obtaining information about the window from outside EVT_PAINT() handler. .. method:: __init__(self, window) Constructor. Pass a pointer to the window on which you wish to paint. :param `window`: :type `window`: wx.Window