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

Deprecated class for drawing on the client area of a window. 
         

:ref:`wx.ClientDC`  should not be used any longer, please use `InfoDC`       instead for obtaining information about the device context associated with a window. 

: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 at all, so drawing using :ref:`wx.ClientDC`  simply doesn't have any effect there. :meth:`CanBeUsedForDrawing`   can be used to determine whether :ref:`wx.ClientDC`  can be used for drawing in the current environment, but it is recommended to only draw on the window using :ref:`wx.PaintDC`, as this is guaranteed to work everywhere. 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`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>ClientDC</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.ClientDC_inheritance.svg" alt="Inheritance diagram of ClientDC" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.ClientDC.html" title="Deprecated class for drawing on the client area of a window." alt="" coords="20,313,139,341"/> <area shape="rect" id="node2" href="wx.WindowDC.html" title="Deprecated class for drawing on the entire window." alt="" coords="12,236,147,265"/> <area shape="rect" id="node3" href="wx.DC.html" title="A wx.DC  is a `'device context'`  onto which graphics and text can be drawn." alt="" coords="41,159,118,188"/> <area shape="rect" id="node4" href="wx.ReadOnlyDC.html" title="Base class for device context not providing any drawing functions." alt="" coords="5,82,154,111"/> <area shape="rect" id="node5" href="wx.Object.html" title="This is the root class of many of the wxWidgets classes." alt="" coords="30,5,129,34"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:ref:`wx.PaintDC`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.ClientDC.__init__`                                                    Constructor.
:meth:`~wx.ClientDC.CanBeUsedForDrawing`                                         Return ``True`` if drawing on :ref:`wx.ClientDC`  actually works.
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.ClientDC(WindowDC)

   **Possible constructors**::

       ClientDC(window) -> None
       
   
   Deprecated class for drawing on the client area of a window.



   .. method:: __init__(self, window)

      Constructor. 
                 

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


      :param `window`: 
      :type `window`: wx.Window




      :rtype: `None`     








   .. staticmethod:: CanBeUsedForDrawing(window)

      Return ``True`` if drawing on :ref:`wx.ClientDC`  actually works. 
                 

      In many environments (currently this includes wxGTK when using Wayland backend, wxMSW when using double buffering and wxOSX in all cases), :ref:`wx.ClientDC`  can be only used for obtaining information about the device context, but not for actually drawing on it. Portable code should avoid using :ref:`wx.ClientDC`  completely, as explained in the class documentation, but it is also possible to optionally use it only when it does work, i.e. when this function returns ``True``. 




      :param `window`: The window that would be used with :ref:`wx.ClientDC`.  
      :type `window`: wx.Window






      :rtype: `bool`




                  



      .. versionadded:: 4.3/wxWidgets-3.3.0  
     







