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; 
};