/****************************************************************************/ /* Copyright(C) Microsoft Corporation 1998 */ /****************************************************************************/ #ifndef _H_EOSINT #define _H_EOSINT #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ WINGDIAPI HBRUSH WINAPI CreateHatchBrush(int, COLORREF); /* Hatch Styles */ #define HS_HORIZONTAL 0 /* ----- */ #define HS_VERTICAL 1 /* ||||| */ #define HS_FDIAGONAL 2 /* \\\\\ */ #define HS_BDIAGONAL 3 /* ///// */ #define HS_CROSS 4 /* +++++ */ #define HS_DIAGCROSS 5 /* xxxxx */ #define HS_LAST HS_DIAGCROSS #define BS_HATCHED 2 //const BYTE kbmHorizontal[] = {0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00}; //const BYTE kbmVertical[] = {0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}; //const BYTE kbmFDiagonal[] = {0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88}; //const BYTE kbmBDiagonal[] = {0x88, 0x44, 0x22, 0x11, 0x88, 0x44, 0x22, 0x11}; //const BYTE kbmCross[] = {0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF}; //const BYTE kbmDiagCross[] = {0x11, 0xAA, 0x8A, 0x44, 0x11, 0xAA, 0x8A, 0x44}; const BYTE kbmBrushBits[6][8] = {{0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00}, {0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, {0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88}, {0x88, 0x44, 0x22, 0x11, 0x88, 0x44, 0x22, 0x11}, {0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF}, {0x11, 0xAA, 0x8A, 0x44, 0x11, 0xAA, 0x8A, 0x44}}; #ifdef __cplusplus } #endif /* __cplusplus */ #ifdef __cplusplus class CHatchBrush // chb { public: CHatchBrush(); ~CHatchBrush(); // Inline this since it's only ever called from the 'C' CreateHatchBrush inline HBRUSH CreateHatchBrush(int fnStyle, COLORREF clrref) { // BUGBUG: Not using clrref! Need support from WinCE team DC_IGNORE_PARAMETER(clrref); HBITMAP hbm; DC_BEGIN_FN("CreateHatchBrush"); switch (fnStyle) { case HS_BDIAGONAL: // 45-degree downward left-to-right hatch case HS_CROSS: // Horizontal and vertical crosshatch case HS_DIAGCROSS: // 45-degree crosshatch case HS_FDIAGONAL: // 45-degree upward left-to-right hatch case HS_HORIZONTAL: // Horizontal hatch case HS_VERTICAL: // Vertical hatch TRC_DBG((TB, _T("Faking hatched brush creation: %d"), fnStyle)); if (NULL != (hbm = GetBrushBitmap(fnStyle))) { return ::CreatePatternBrush(hbm); } break; default: TRC_ERR((TB, _T("Illegal hatched brush style"))); return NULL; } return NULL; }; private: HBITMAP m_hbmBrush[HS_LAST]; inline HBITMAP GetBrushBitmap(int fnStyle) { if (NULL == m_hbmBrush[fnStyle]) { return (m_hbmBrush[fnStyle] = CreateBitmap(8, 8, 1, 1, (const void *)kbmBrushBits[fnStyle])); } else { return m_hbmBrush[fnStyle]; } }; }; #endif /* __cplusplus */ #endif // _H_EOSINT