diff --git a/docs/doxygen/mainpages/cat_classes.h b/docs/doxygen/mainpages/cat_classes.h
index ffcbf1acf6..e310947434 100644
--- a/docs/doxygen/mainpages/cat_classes.h
+++ b/docs/doxygen/mainpages/cat_classes.h
@@ -292,11 +292,13 @@ Related Overviews: @ref overview_dc
@li wxBufferedPaintDC: A helper device context for double buffered drawing
inside @b OnPaint().
@li wxClientDC: A device context to access the client area outside
- @b OnPaint() events
+ @b OnPaint() events (doesn't work on many modern systems, deprecated).
@li wxPaintDC: A device context to access the client area inside @b OnPaint()
events
-@li wxWindowDC: A device context to access the non-client area
-@li wxScreenDC: A device context to access the entire screen
+@li wxWindowDC: A device context to access the non-client area (Windows-only,
+ deprecated).
+@li wxScreenDC: A device context to access the entire screen (doesn't work on
+ many modern systems, deprecated).
@li wxDC: The device context base class
@li wxMemoryDC: A device context for drawing into bitmaps
@li wxMetafileDC: A device context for drawing into metafiles
diff --git a/include/wx/dcscreen.h b/include/wx/dcscreen.h
index 21bdb984c9..b297838159 100644
--- a/include/wx/dcscreen.h
+++ b/include/wx/dcscreen.h
@@ -13,6 +13,7 @@
#include "wx/defs.h"
#include "wx/dc.h"
+// This class is obsolete and doesn't work, don't use it.
class WXDLLIMPEXP_CORE wxScreenDC : public wxDC
{
public:
diff --git a/interface/wx/dcclient.h b/interface/wx/dcclient.h
index b21d6eaa8c..38e8d425fe 100644
--- a/interface/wx/dcclient.h
+++ b/interface/wx/dcclient.h
@@ -24,7 +24,7 @@
@library{wxcore}
@category{dc}
- @see wxDC, wxClientDC, wxMemoryDC, wxWindowDC, wxScreenDC
+ @see wxDC, wxMemoryDC
*/
class wxPaintDC : public wxClientDC
{
@@ -66,7 +66,7 @@ public:
@library{wxcore}
@category{dc}
- @see wxDC, wxMemoryDC, wxPaintDC, wxWindowDC, wxScreenDC
+ @see wxDC, wxMemoryDC, wxPaintDC, wxWindowDC
*/
class wxClientDC : public wxWindowDC
{
@@ -120,7 +120,7 @@ public:
@library{wxcore}
@category{dc}
- @see wxDC, wxMemoryDC, wxPaintDC, wxClientDC, wxScreenDC
+ @see wxDC, wxMemoryDC, wxPaintDC, wxClientDC
*/
class wxWindowDC : public wxDC
{
diff --git a/interface/wx/dcscreen.h b/interface/wx/dcscreen.h
index 64570bf133..6165a2716d 100644
--- a/interface/wx/dcscreen.h
+++ b/interface/wx/dcscreen.h
@@ -12,6 +12,8 @@
Please don't use this class in the new code, as it doesn't work on modern
systems any longer and using it is not guaranteed to have any effect at all.
+ Use wxDisplay for getting information about the screen and wxOverlay for
+ temporarily drawing over a window.
A wxScreenDC can be used to paint on the screen. This should normally be
constructed as a temporary stack object; don't store a wxScreenDC object.
diff --git a/interface/wx/dragimag.h b/interface/wx/dragimag.h
index c6752abd95..d8dafb5b03 100644
--- a/interface/wx/dragimag.h
+++ b/interface/wx/dragimag.h
@@ -15,6 +15,9 @@
platforms, wxGenericDragImage is used. Applications may also prefer to use
wxGenericDragImage on Windows, too.
+ @note wxGenericDragImage implementation uses wxScreenDC and so doesn't work
+ on the platforms where wxScreenDC doesn't work, e.g. modern macOS versions.
+
To use this class, when you wish to start dragging an image, create a
wxDragImage object and store it somewhere you can access it as the drag
progresses. Call BeginDrag() to start, and EndDrag() to stop the drag. To
diff --git a/samples/dragimag/dragimag.cpp b/samples/dragimag/dragimag.cpp
index 22a77158b5..e71c9542d7 100644
--- a/samples/dragimag/dragimag.cpp
+++ b/samples/dragimag/dragimag.cpp
@@ -398,23 +398,6 @@ bool MyApp::OnInit()
}
}
-#if 0
- // Under GTK, this demonstrates that
- // wxScreenDC only gets the root window content.
- // We need to be able to copy the overall content
- // for full-screen dragging to work.
- int w, h;
- wxDisplaySize(& w, & h);
- wxBitmap bitmap(w, h);
-
- wxScreenDC dc;
- wxMemoryDC memDC;
- memDC.SelectObject(bitmap);
- memDC.Blit(0, 0, w, h, & dc, 0, 0);
- memDC.SelectObject(wxNullBitmap);
- m_background = bitmap;
-#endif
-
frame->Show( true );
return true;
diff --git a/samples/help/doc/wx34.htm b/samples/help/doc/wx34.htm
index 79a2521d87..67a38b3325 100644
--- a/samples/help/doc/wx34.htm
+++ b/samples/help/doc/wx34.htm
@@ -496,8 +496,6 @@
wxStaticBoxSizer
-wxScreenDC
-
wxScrollBar
wxScrollWinEvent
diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp
index c89cb0260a..f4a7cac71b 100644
--- a/src/common/wincmn.cpp
+++ b/src/common/wincmn.cpp
@@ -38,7 +38,6 @@
#include "wx/statusbr.h"
#include "wx/toolbar.h"
#include "wx/dcclient.h"
- #include "wx/dcscreen.h"
#include "wx/scrolbar.h"
#include "wx/layout.h"
#include "wx/sizer.h"
@@ -2905,7 +2904,7 @@ static wxSize GetDPIHelper(const wxWindowBase* w)
if ( w )
dpi = w->GetDPI();
if ( !dpi.x || !dpi.y )
- dpi = wxScreenDC().GetPPI();
+ dpi = wxDisplay().GetPPI();
if ( !dpi.x || !dpi.y )
dpi = wxDisplay::GetStdPPI();
diff --git a/src/generic/sashwin.cpp b/src/generic/sashwin.cpp
index bf37d8a75f..b1440bb0fb 100644
--- a/src/generic/sashwin.cpp
+++ b/src/generic/sashwin.cpp
@@ -114,8 +114,6 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
!wxDynamicCast(parent, wxFrame))
parent = parent->GetParent();
- wxScreenDC::StartDrawingOnTop(parent);
-
// We don't say we're dragging yet; we leave that
// decision for the Dragging() branch, to ensure
// the user has dragged a little bit.
@@ -149,7 +147,6 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
ReleaseMouse();
m_mouseCaptured = false;
- wxScreenDC::EndDrawingOnTop();
m_dragMode = wxSASH_DRAG_NONE;
m_draggingEdge = wxSASH_NONE;
}
@@ -164,10 +161,6 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
// Erase old tracker
DrawSashTracker(m_draggingEdge, m_oldX, m_oldY);
- // End drawing on top (frees the window used for drawing
- // over the screen)
- wxScreenDC::EndDrawingOnTop();
-
int w, h;
GetSize(&w, &h);
int xp, yp;