53 lines
2.1 KiB
C++
53 lines
2.1 KiB
C++
typedef DWORD (WINAPI* PFNGETLAYOUT)(HDC hdc);
|
|
typedef DWORD (WINAPI* PFNSETLAYOUT)(HDC hdc, DWORD dwLayout);
|
|
|
|
|
|
class _XTP_EXT_CLASS CXTPMarkupGdiPlusDeviceContext : public CXTPMarkupDeviceContext
|
|
{
|
|
public:
|
|
CXTPMarkupGdiPlusDeviceContext(HDC hDC, HDC hAttribDC);
|
|
virtual ~CXTPMarkupGdiPlusDeviceContext();
|
|
|
|
public:
|
|
virtual void OffsetViewport(const POINT& ptViewortOrg);
|
|
|
|
|
|
virtual void SetSmoothingMode(XTPMarkupSmoothingMode smoothingMode);
|
|
|
|
protected:
|
|
|
|
Gdiplus::Status GdipCreateBitmapFromHICON_Fixed(HICON hicon, Gdiplus::GpBitmap** bitmap) const;
|
|
|
|
public:
|
|
virtual void Ellipse(CRect rc, CXTPMarkupStrokeStyle* pStrokeStyle, CXTPMarkupBrush* pFillBrush);
|
|
virtual void DrawRectangle(CRect rc, CXTPMarkupBrush* pBrush, CXTPMarkupThickness* pThickness);
|
|
virtual void FillRectangle(CRect rc, CXTPMarkupBrush* pBrush);
|
|
virtual void DrawLine(int x1, int y1, int x2, int y2, CXTPMarkupStrokeStyle* pStrokeStyle);
|
|
virtual void Polyline(const POINT* points, int nCount, CXTPMarkupStrokeStyle* pStrokeStyle);
|
|
virtual void Polygon(const POINT* points, int nCount, CXTPMarkupStrokeStyle* pStrokeStyle, CXTPMarkupBrush* pFillBrush);
|
|
virtual void DrawPath(CXTPMarkupPathData *pData, CXTPMarkupStrokeStyle* pStrokeStyle, CXTPMarkupBrush* pFillBrush);
|
|
|
|
virtual void DrawImage(CXTPImageManagerIcon* pIcon, CRect rc);
|
|
|
|
virtual void FillRoundRectangle(CRect rc, CXTPMarkupBrush* pBrush, double* pCornerRadius);
|
|
virtual void DrawRoundRectangle(CRect rc, CXTPMarkupBrush* pBrush, CXTPMarkupThickness* pThickness, double* pCornerRadius);
|
|
|
|
public:
|
|
static CXTPGdiPlus* GetGdiPlus();
|
|
static void Register(BOOL bInit);
|
|
|
|
|
|
virtual Gdiplus::GpGraphics* GetGraphics();
|
|
virtual void ReleaseGraphics(Gdiplus::GpGraphics* pGpGraphics);
|
|
|
|
protected:
|
|
Gdiplus::GpBrush* CreateGpBrush(CXTPMarkupBrush* pBrush, LPCRECT lpRect) const;
|
|
Gdiplus::GpPen* CreateGpPen(CXTPMarkupStrokeStyle* pStrokeStyle, LPCRECT lpRect) const;
|
|
CRect GetPointsBoundRect(const POINT* points, int nCount) const;
|
|
BOOL IsGDIBrush(CXTPMarkupBrush* pBrush) const;
|
|
|
|
Gdiplus::GpBitmap *IconToGdiplusBitmap(CXTPImageManagerIcon* pIcon) const;
|
|
|
|
Gdiplus::SmoothingMode m_smoothingMode;
|
|
};
|