/////////////////////////////////////////////////////////////////////////////
// Name: private.h
// Purpose: Private declarations: as this header is only included by
-// wxWindows itself, it may contain identifiers which don't start
+// wxWidgets itself, it may contain identifiers which don't start
// with "wx".
// Author: Julian Smart
// Modified by:
extern void HIMETRICToPixel(LONG *x, LONG *y);
extern void PixelToHIMETRIC(LONG *x, LONG *y);
-// Windows convention of the mask is opposed to the wxWindows one, so we need
+// Windows convention of the mask is opposed to the wxWidgets one, so we need
// to invert the mask each time we pass one/get one to/from Windows
extern HBITMAP wxInvertMask(HBITMAP hbmpMask, int w = 0, int h = 0);
WinStruct()
{
::ZeroMemory(this, sizeof(T));
- cbSize = sizeof(T);
+
+ // explicit qualification is required here for this to be valid C++
+ this->cbSize = sizeof(T);
}
};
DECLARE_NO_COPY_CLASS(ScreenHDC)
};
+// the same as ScreenHDC but for window DCs
+class WindowHDC
+{
+public:
+ WindowHDC(HWND hwnd) { m_hdc = ::GetDC(m_hwnd = hwnd); }
+ ~WindowHDC() { ::ReleaseDC(m_hwnd, m_hdc); }
+
+ operator HDC() const { return m_hdc; }
+
+private:
+ HWND m_hwnd;
+ HDC m_hdc;
+
+ DECLARE_NO_COPY_CLASS(WindowHDC)
+};
+
// the same as ScreenHDC but for memory DCs: creates the HDC compatible with
// the given one (screen by default) in ctor and destroys it in dtor
class MemoryHDC
extern HCURSOR wxGetCurrentBusyCursor(); // from msw/utils.cpp
extern const wxCursor *wxGetGlobalCursor(); // from msw/cursor.cpp
-WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont *the_font);
+WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont& the_font);
WXDLLEXPORT void wxFillLogFont(LOGFONT *logFont, const wxFont *font);
WXDLLEXPORT wxFont wxCreateFontFromLogFont(const LOGFONT *logFont);
WXDLLEXPORT wxFontEncoding wxGetFontEncFromCharSet(int charset);