windows-nt/Source/XPSP1/NT/shell/osshell/accesory/mspaint/imgbrush.h
2020-09-26 16:20:57 +08:00

75 lines
2 KiB
C++

#ifndef __IMGBRUSH_H__
#define __IMGBRUSH_H__
class CImgBrush : public CObject
{
public: /******************************************************************/
CImgBrush();
virtual ~CImgBrush();
BOOL CopyTo( CImgBrush& destImgBrush );
CPalette* SetBrushPalette( CDC* pdc, BOOL bForce = FALSE );
HPALETTE SetBrushPalette( HDC hdc, BOOL bForce = FALSE );
BOOL SetSize ( CSize newSize, BOOL bStretchToFit=TRUE );
void ColorToMonoBitBlt(CDC* pdcMono, int xMono, int yMono, int cx, int cy,
CDC *pdcColor, int xColor, int yColor, DWORD dwROP, COLORREF transparentColor);
void RecalcMask( COLORREF transparentColor );
void BltMatte ( IMG* pimg, CPoint topLeft );
void BltReplace( IMG* pimg, CPoint topLeft );
void BltColor ( IMG* pimg, CPoint topLeft, COLORREF color );
void CenterHandle();
void TopLeftHandle();
CRgn m_cRgnPolyFreeHandSelBorder;
CRgn m_cRgnPolyFreeHandSel;
CDC m_dc;
CBitmap m_bitmap;
CSize m_size;
CDC m_maskDC;
CBitmap m_maskBitmap;
HBITMAP m_hbmOld;
HBITMAP m_hbmMaskOld;
BOOL m_bFirstDrag;
BOOL m_bLastDragWasASmear;
BOOL m_bLastDragWasFirst;
BOOL m_bCuttingFromImage;
BOOL m_bMakingSelection;
BOOL m_bMoveSel;
BOOL m_bSmearSel;
BOOL m_bOpaque;
CRect m_rcDraggedFrom;
CSize m_dragOffset;
IMG* m_pImg;
CRect m_rcSelection;
CSize m_handle;
};
extern CImgBrush NEAR theImgBrush;
void GetMonoBltColors(HDC hDC, HBITMAP hBM, COLORREF& crNewBk, COLORREF& crNewText);
BOOL QuickColorToMono(CDC* pdcMono, int xMono, int yMono, int cx, int cy,
CDC *pdcColor, int xColor, int yColor, DWORD dwROP, COLORREF crTrans);
// #define DEBUGSHOWBITMAPS
#if defined(DEBUGSHOWBITMAPS)
void DebugShowBitmap(HDC hdcSrc, int x, int y, int wid, int hgt);
#else
#define DebugShowBitmap(hdc,x,y,w,h)
#endif
#endif // __IMGBRUSH_H__