www.pudn.com > RichDrawText_demo.zip > RichDrawText.h
#pragma once #include#include #include class CRichDrawText : public CCmdTarget { public: CRichDrawText(); void SetText(LPCWSTR lpText); void Range(long cpFirst, long cpLim, ITextRange** ppRange); void SizeText(CDC& dc, CRect& rect); void DrawText(CDC& dc, const CRect& rect); DECLARE_INTERFACE_MAP() BEGIN_INTERFACE_PART(TextHost, ITextHost) HDC TxGetDC(); INT TxReleaseDC(HDC hdc); BOOL TxShowScrollBar(INT fnBar, BOOL fShow); BOOL TxEnableScrollBar(INT fuSBFlags, INT fuArrowflags); BOOL TxSetScrollRange(INT fnBar, LONG nMinPos, INT nMaxPos, BOOL fRedraw); BOOL TxSetScrollPos(INT fnBar, INT nPos, BOOL fRedraw); void TxInvalidateRect(LPCRECT prc, BOOL fMode); void TxViewChange(BOOL fUpdate); BOOL TxCreateCaret(HBITMAP hbmp, INT xWidth, INT yHeight); BOOL TxShowCaret(BOOL fShow); BOOL TxSetCaretPos(INT x, INT y); BOOL TxSetTimer(UINT idTimer, UINT uTimeout); void TxKillTimer(UINT idTimer); void TxScrollWindowEx(INT dx, INT dy, LPCRECT lprcScroll, LPCRECT lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate, UINT fuScroll); void TxSetCapture(BOOL fCapture); void TxSetFocus(); void TxSetCursor(HCURSOR hcur, BOOL fText); BOOL TxScreenToClient(LPPOINT lppt); BOOL TxClientToScreen(LPPOINT lppt); HRESULT TxActivate(LONG * plOldState); HRESULT TxDeactivate(LONG lNewState); HRESULT TxGetClientRect(LPRECT prc); HRESULT TxGetViewInset(LPRECT prc); HRESULT TxGetCharFormat(const CHARFORMATW **ppCF); HRESULT TxGetParaFormat(const PARAFORMAT **ppPF); COLORREF TxGetSysColor(int nIndex); HRESULT TxGetBackStyle(TXTBACKSTYLE *pstyle); HRESULT TxGetMaxLength(DWORD *plength); HRESULT TxGetScrollBars(DWORD *pdwScrollBar); HRESULT TxGetPasswordChar(TCHAR *pch); HRESULT TxGetAcceleratorPos(LONG *pcp); HRESULT TxGetExtent(LPSIZEL lpExtent); HRESULT OnTxCharFormatChange(const CHARFORMATW * pcf); HRESULT OnTxParaFormatChange(const PARAFORMAT * ppf); HRESULT TxGetPropertyBits(DWORD dwMask, DWORD *pdwBits); HRESULT TxNotify(DWORD iNotify, void *pv); HIMC TxImmGetContext(); void TxImmReleaseContext(HIMC himc); HRESULT TxGetSelectionBarWidth(LONG *lSelBarWidth); END_INTERFACE_PART(TextHost) private: CComQIPtr m_TextDoc; CComQIPtr m_TextServ; CHARFORMATW m_CharFormat; PARAFORMAT m_ParaFormat; };