// ========================================================================== // Class Specification : COXStaticText // ========================================================================== // Header file : OXStaticText.h // Version: 9.3 // This software along with its related components, documentation and files ("The Libraries") // is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is // governed by a software license agreement ("Agreement"). Copies of the Agreement are // available at The Code Project (www.codeproject.com), as part of the package you downloaded // to obtain this file, or directly from our office. For a copy of the license governing // this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900. // ////////////////////////////////////////////////////////////////////////// // Properties : // NO Abstract class (does not have any objects) // YES Derived from CStatic // YES Is a CWnd. // YES Two stage creation (constructor & Create()) // YES Has a message map // NO Needs a resource (template) // NO Persistent objects (saveable on disk) // NO Uses exceptions // ////////////////////////////////////////////////////////////////////////// // Description : // The COXStaticText class is a control where user can put text in. Normal look of this control is // similar to a static control -- it just shows a text string. But unlike the MFC's CStatic, this // class allows the user to give that text a certain special appearance: // * Set/get the text color; // * Set/get the background color; // * Set/get the text font and attributes; // * Drawing 3D text = Embossed text; // * Set/get the 3D offset (pixels); // * Text scrolling at any direction; // * Set/get scrolling speed (pixels per second); // * Drawing text under an angle; // * Drawing ellipses at the begin, end or middle of a text string; // * Drawing special borders: sunken, raised, flat line, dotted line. // Remark : // Text scrolling is carried out by the separate worker thread. // Prerequisites (necessary conditions): // Including the and . ///////////////////////////////////////////////////////////////////////////// #ifndef __OXSTATEXT_H__ #define __OXSTATEXT_H__ #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 #include "OXDllExt.h" #include #include // ////////////////////////////////////////////////////////////////////////// // Definition of the font attributes constants. #define OX_BOLD_FONT 0 #define OX_ITALIC_FONT 1 #define OX_UNDERLINED_FONT 2 #define OX_STRIKED_OUT_FONT 3 // Definition of ellipses replacing mode constants. #define OX_BEGIN_ELLIPSES 4 #define OX_MIDDLE_ELLIPSES 5 #define OX_END_ELLIPSES 6 #define OX_NO_ELLIPSES 7 #define OX_ALIGNHORZ_LEFT 0 #define OX_ALIGNHORZ_CENTER 1 #define OX_ALIGNHORZ_RIGHT 2 #define OX_ALIGNVERT_TOP 3 #define OX_ALIGNVERT_CENTER 4 #define OX_ALIGNVERT_BOTTOM 5 // Definition of PI constant. #define OX_PI 3.1415926535 // Definition of maximum text 3D offset. #define OX_MAX_3DOFFSET 100 // ////////////////////////////////////////////////////////////////////////// class OX_CLASS_DECL COXStaticText : public CStatic { // Data members ------------------------------------------------------------- public: CBitmap *m_BMP; protected: int m_nHorzAlignment; int m_nVertAlignment; BOOL m_bDottedEdge; BOOL m_bAllowRefresh; BOOL m_bEmbossText; BOOL m_bEmbossRaised; COLORREF m_clrEmbossHighLight; COLORREF m_clrEmbossShadow; DWORD m_dwCurrentTickDelta; DWORD m_dwLastTickDelta; DWORD m_dwBeginTickCount; DWORD m_dwEndTickCount; DWORD m_dwBkColor; DWORD m_dwMinTimeOut; DWORD m_dwOffset; DWORD m_dwScrollSpeed; DWORD m_dwScrollTimeOut; DWORD m_dwTextColor; LOGFONT m_LogFont; int m_nEllipseMode; int m_nGraphicsMode; int m_nScrollAmount; int m_nScrollDirection; double m_nXCastDisplacement; double m_nXDisplacement; double m_dXDelta; double m_nYCastDisplacement; double m_nYDisplacement; double m_dYDelta; CEvent* m_pEventLoop; CCriticalSection* m_pCritSecRedrawWait; CFont* m_pObjFont; CWinThread* m_pScrollingThread; CString m_sText; CString m_sTextNarrow; CSize m_szTextSize; CSize m_szGapSize; CRect m_rectViewMargins; private: // Registered message to to prepare bitmap for COXStaticText object. Used in // PrepareBitmap() function // static UINT m_nPrepareBitmap; // Member functions --------------------------------------------------------- public: // --- In : dwOffset : Initilal text 3D offset (0 by default). // nGraphicsMode : Initilal text graphics mode (Compatible by default). // nHorzAlignment : Initial horizontal text alignment // nVertAlignment : Initial vertical text alignment // --- Out : // --- Returns : // --- Effect : Constructs the COXStaticText object. COXStaticText(DWORD dwOffset = 0, int nGraphicsMode = GM_COMPATIBLE, int nHorzAlignment = OX_ALIGNHORZ_CENTER, int nVertAlignment = OX_ALIGNVERT_CENTER); // --- In : // --- Out : // --- Returns : // --- Effect : Destroys the COXStaticText object. virtual ~COXStaticText(); // --- In : lpszText : Specifies the text to place in the control. // If NULL, no text will be visible // dwStyle : Specifies the static control's window style. // Normal Static control styles are not allowed // rect : Specifies the position and size of the static control. // It can be either a RECT structure or a CRect object. // pParentWnd : Specifies the CStatic parent window, usually a // CDialog object. It must not be NULL. // nID : Specifies the static control's control ID. // --- Out : // --- Returns : succesful or not. // --- Effect : Creates the COXStaticText object. BOOL Create(LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); // --- In : nAlignment : Text alignment (can be left,right and center). // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the text horizontal alignment. BOOL SetHorzAlignment(int nAlignment, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Text alignment. // --- Effect : Retrieves the text horizontal alignment. int GetHorzAlignment() const; // --- In : nAlignment : Text alignment (can be top,bottom and center). // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the text vertical alignment. BOOL SetVertAlignment(int nAlignment, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Text alignment. // --- Effect : Retrieves the text vertical alignment. int GetVertAlignment() const; // --- In : dwBkColor : Text background color. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the text background color. BOOL SetBkColor(COLORREF dwBkColor, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Text background color. // --- Effect : Retrieves the text background color. COLORREF GetBkColor() const; // --- In : dwTextColor : Text color. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the text color. BOOL SetTextColor(COLORREF dwTextColor, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Text color. // --- Effect : Retrieves the text color. COLORREF GetTextColor() const; // --- In : dwTextColor : Text color. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the text color. BOOL SetEmboss(BOOL bEmboss = TRUE, BOOL bRaised = FALSE, BOOL bPrepareNow = FALSE, COLORREF clrHLight = ::GetSysColor(COLOR_BTNHIGHLIGHT), COLORREF clrShadow = ::GetSysColor(COLOR_BTNSHADOW)); // --- In : // --- Out : // --- Returns : Is the text embossed or not // --- Effect : Retrieves the embossed mode BOOL GetEmboss() const; // --- In : psText : Text string. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the text string. BOOL SetWindowText(LPCTSTR psText, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Pointer to the text string. // --- Effect : Retrieves the text string. LPCTSTR GetText() const; // --- In : nGraphicsMode : Specifies the graphics mode. // This parameter can be one of the // following values: // // GM_COMPATIBLE - Sets the graphics mode that is compatible with Windows // version 3.1. This is the default mode. If this value is // specified, the application can only modify the // world-to-device transform by calling functions that // set window and viewport extents and origins, but not // by using SetWorldTransform or ModifyWorldTransform; // calls to those functions will fail. // GM_ADVANCED - Windows NT: Sets the advanced graphics mode that allows // world transformations. This value must be specified // if the application will set or modify the world // transformation for the specified device context. // In this mode all graphics, including text output, // fully comforms to the world-to-device transformation // specified in the device context. // Windows 95: The GM_ADVANCED value is not supported. // When playing enhanced metafiles, Windows 95 does its // best to ensure that enhanced metafiles on Windows 95 // look the same as they do on Windows NT. To accomplish // this, Windows 95 may simulate GM_ADVANCED mode when // playing specific enhanced metafile records. // // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the graphics mode. BOOL SetGraphicsMode(int nGraphicsMode, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : The graphics mode (see above). // --- Effect : Retrieves the graphics mode. int GetGraphicsMode() const; // --- In : nEllipseMode : Ellipses replacing mode. This parameter can be one of the following values: // OX_BEGIN_ELLIPSES - replace characters at the begin of the string, // OX_MIDDLE_ELLIPSES - replace characters at the middle of the string, // OX_END_ELLIPSES - replace characters at the end of the string, // OX_NO_ELLIPSES - no characters replacing. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the mode of symbols/ellipses replacing. // If specified mode is already set, function sets it to OX_NO_ELLIPSES. BOOL SetEllipseMode(int nEllipseMode, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Mode of symbols/ellipses replacing (see above). // --- Effect : Retrieves the ellipses replacing mode. int GetEllipseMode() const; // --- In : dwOffset : Text 3D offset (pixels). // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the text 3D offset (MAX = OX_MAX_3DOFFSET). // Function throws values higher than OX_MAX_3DOFFSET off. BOOL Set3Doffset(DWORD dwOffset, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Text 3D offset (pixels). // --- Effect : Retrieves the text 3D offset. DWORD Get3Doffset() const; // --- In : nAttr : Font attribute. This parameter can be one of the following values: // OX_BOLD_FONT - Bold font. // OX_ITALIC_FONT - Italic font. // OX_UNDERLINED_FONT - Underlined font. // OX_STRIKED_OUT_FONT - Striked out font. // bSet = TRUE if the attribute is to be set, otherwise FALSE // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the font attributes. BOOL SetFontAttr(int nAttr, BOOL bSet = TRUE, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : TRUE - if the font is currently bold, FALSE - otherwise. // --- Effect : Returns whether the font is currenly bold. BOOL IsBold() const; // --- In : // --- Out : // --- Returns : TRUE - if the font is currently italic, FALSE - otherwise. // --- Effect : Returns whether the font is currenly italic. BOOL IsItalic() const; // --- In : // --- Out : // --- Returns : TRUE - if the font is currently underlined, FALSE - otherwise. // --- Effect : Returns whether the font is currenly underlined. BOOL IsUnderlined() const; // --- In : // --- Out : // --- Returns : TRUE - if the font is currently striked out, FALSE - otherwise. // --- Effect : Returns whether the font is currenly striked out. BOOL IsStrikedOut() const; // --- In: nAngle : Specifies the angle, in tenths of degrees, of each line // of text written in the font (relative to the bottom of the page). // bPrepareNow:TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out: // --- Returns: TRUE - if the function succeeds; otherwise FALSE. // --- Effect: Sets the text angle. BOOL SetStringAngle(int nAngle, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Text angle. // --- Effect : Retrieves the text angle. int GetStringAngle() const; // --- In : nAngle : Specifies the angle, in tenths of degrees, of each // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // character's base line (relative to the bottom of the page). // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the character's angle (works in Advanced graphics mode only). BOOL SetCharAngle(int nAngle, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Character's angle. // --- Effect : Retrieves the character's angle. int GetCharAngle() const; // --- In : nCharSet : Specifies the character set. The following values are predefined: // ANSI_CHARSET, OEM_CHARSET, SYMBOL_CHARSET, UNICODE_CHARSET. // The OEM character set is system dependent. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the character set. BOOL SetCharSet(int nCharSet, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Character set. // --- Effect : Retrieves the character set (see above). int GetCharSet() const; // --- In : nHeight - Specifies the height, in logical units, of the font. The font height // can be specified in one of three ways. If nHeight is greater than zero, // it is transformed into device units and matched against the cell height // of the available fonts. If it is zero, a reasonable default size is used. // If it is less than zero, it is transformed into device units and the // absolute value is matched against the character height of the available // fonts. For all height comparisons, the font mapper looks for the largest // font that does not exceed the requested size; if there is no such font, // it looks for the smallest font available. This mapping occurs when the // font is actually used for the first time. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the font height. BOOL SetFontHeight(int nHeight, BOOL bPrepareNow = FALSE); // --- In : nWidth - Specifies the width, in logical units, of the font. The font height // can be specified in one of three ways. If nWidth is greater than zero, // it is transformed into device units and matched against the cell width // of the available fonts. If it is zero, a reasonable default size is used. // If it is less than zero, it is transformed into device units and the // absolute value is matched against the character height of the available // fonts. For all height comparisons, the font mapper looks for the largest // font that does not exceed the requested size; if there is no such font, // it looks for the smallest font available. This mapping occurs when the // font is actually used for the first time. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the font width. BOOL SetFontWidth(int nWidth, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Font height. // --- Effect : Retrieves the font height. int GetFontHeight() const; // --- In : // --- Out : // --- Returns : Font width. // --- Effect : Retrieves the font width. int GetFontWidth() const; // --- In : sName - String that specifies the typeface name of the font. // The length of this string must not exceed LF_FACESIZE characters. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the typeface name of the font. BOOL SetFontName(LPCTSTR sName, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Typeface name of the font. // --- Effect : Retrieves the typeface name of the font. CString GetFontName() const; // --- In : plf - A pointer to object of LOGFONT structure that specifies // font to be used to draw text. // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the font. BOOL SetLogFont(LOGFONT* plf, BOOL bPrepareNow = FALSE); // --- In : plf - A pointer to object of LOGFONT structure we use to copy // information about the font currently used to draw text. // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Retrieves the font info. BOOL GetLogFont(LOGFONT* plf) const; // --- In : bSet - if TRUE, thin-line border is set, if FALSE, it cancels. // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the window thin-line border. BOOL SetPlainBorder(BOOL bSet = TRUE); // --- In : bSet - if TRUE, three-dimensional border is set, if FALSE, it cancels. // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the window three-dimensional border. BOOL SetStaticEdge(BOOL bSet = TRUE); // --- In : bSet - if TRUE, border with a sunken edge is set, if FALSE, it cancels. // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the border with a sunken edge. BOOL SetClientEdge(BOOL bSet = TRUE); // --- In : bSet - if TRUE, border with a raised edge is set, if FALSE, it cancels. // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the border with a raised edge. BOOL SetRaisedEdge(BOOL bSet = TRUE); // --- In : bSet - if TRUE, border with a dotted edge is set, if FALSE, it cancels. // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Sets the border with a dotted edge. This mode cancels other borders. BOOL SetDottedEdge(BOOL bSet = TRUE); // --- In : nDirection - text scrolling directions (in degrees). // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : // --- Effect : Sets the text scrolling directions (in degrees). void SetScrollDirection(int nDirection, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : Text scrolling directions (in degrees). // --- Effect : Retrieves the text scrolling directions (in degrees). int GetScrollDirection() const; // --- In : dwScrollSpeed - text scrolling speed (pixels per second). // --- Out : // --- Returns : // --- Effect : Sets the text scrolling speed (pixels per second). void SetScrollSpeed(DWORD dwScrollSpeed); // --- In : // --- Out : // --- Returns : Text scrolling speed (pixels per second). // --- Effect : Retrieves the text scrolling speed (pixels per second). DWORD GetScrollSpeed() const; // --- In : bStart - if TRUE, text scrolling starts, is FALSE, it stops. // --- Out : // --- Returns : // --- Effect : Starts/stops the text scrolling. // Initial speed is 0 pixels/second and initial direction is 0 degrees. // Scroll speed and direction can be changed during text scrolling. void StartScrolling(BOOL bStart = TRUE); // --- In : // --- Out : // --- Returns : TRUE, if text scrolling is started, FALSE otherwise. // --- Effect : Returns whether text scrolling is started. BOOL IsScrollingStarted() const; // --- In : dwMinTimeOut - minimum time out interval for text scrolling. // --- Out : // --- Returns : // --- Effect : Sets the minimum time out interval for text scrolling (ms). // Time out interval is calculated after scroll speed is set. // Its value can not be lower than specified minimum (initially 10 ms). // dwMinTimeOut can be in interval [1 - 500] ms. void SetMinTimeOut(DWORD dwMinTimeOut); // --- In : // --- Out : // --- Returns : Minimum time out interval for text scrolling (ms). // --- Effect : Retrieves the minimum time out interval for text scrolling. DWORD GetMinTimeOut() const; // --- In : szGapSize - size of the gap beetwen the end and // the begining of scrolling text. // bPrepareNow - if TRUE then internal image has to be rebuild. // If more than one feature of the COXStaticText // control is set, the last set has to have this // parameter set to TRUE, to have the image // build // --- Out : // --- Returns : // --- Effect : Sets the size of the gap beetwen the end and // the begining of scrolling text. void SetGapSize(CSize& szGapSize, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : the size of the gap beetwen the end and // the begining of scrolling text. // --- Effect : Retrieves the size of the gap beetwen the end and // the begining of scrolling text. CSize GetGapSize() const; // --- In : // bPrepareNow = TRUE if internal image has to be rebuild. If more than one // feature of the COXStaticText control is set, the last // set has to have this parameter set to TRUE, to have the image build // --- Out : // --- Returns : TRUE - if the function succeeds; otherwise FALSE. // --- Effect : Restores the text initial position (without scrolling offset). BOOL RestoreTextPos(BOOL bPrepareNow = TRUE); // --- In : rectViewMargins - rectangle that contains left, top, right and // bottom margins of view rectangle relatively // to control client window rectangle // bPrepareNow - if TRUE then internal image has to be rebuild. // If more than one feature of the COXStaticText // control is set, the last set has to have this // parameter set to TRUE, to have the image // build // --- Out : // --- Returns : // --- Effect : Sets the size of the gap beetwen the end and // the begining of scrolling text. void SetViewMargins(CRect& rectViewMargins, BOOL bPrepareNow = FALSE); // --- In : // --- Out : // --- Returns : rectangle that contains left, top, right and bottom margins // of view rectangle relatively to control client window rectangle // --- Effect : Retrieves the sizes of the margins between view and control // client window rectangles. CRect GetViewMargins() const; // --- In : // --- Out : // --- Returns : the size of the text displayed in the control // --- Effect : Retrieves the size of the text displayed in the // control. CSize GetTextSize() const; protected: virtual BOOL PrepareBitmap(BOOL bNow); static UINT TextScrollingThreadFunction(LPVOID pParam); BOOL RefreshBitmap(); void EmbossText(CDC* pMemDC, RECT BmpRect); void TextOutput(CDC* pMemDC, RECT rect); void EllipsesReplace(CDC* pMemDC, LPRECT lpRect); void SpeedCalc(DWORD dwScrollSpeed, DWORD* pdwTimeOut, DWORD* pdwAmount); void ScrollAmountRecalc(); BOOL RebuildFont(); CSize CalcRectSizes( CDC* pDC); void GetInitialDisplacement(CRect& textRect); //{{AFX_MSG(COXStaticText) afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnPaint(); afx_msg void OnNcPaint(); afx_msg void OnDestroy(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg LRESULT OnDisplayChange(WPARAM wParam, LPARAM lParam); //}}AFX_MSG afx_msg LRESULT OnPrepareBitmap(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() private: }; // inline functions #include "OXStaticText.inl" #endif // __OXSTATEXT_H__