58 bool m_calc(HDC dc, DWORD style)
const
61 UINT un = DT_PATH_ELLIPSIS | DT_END_ELLIPSIS | DT_WORD_ELLIPSIS;
62 DWORD st = style & (0xFFFFFFF0 - un);
67 HGDIOBJ oldFont = ::GetCurrentObject(dc, OBJ_FONT);
71 ::SelectObject(dc, pa.
font);
72 TEXTMETRIC tTextMetric;
73 if ( ! ::GetTextMetrics(dc, &tTextMetric) )
82 ASSERT( sz.cy == tTextMetric.tmHeight );
83 int l = tTextMetric.tmAscent;
89 ::SelectObject(dc, oldFont);
92 switch( style & 0x03 )
105 switch( style & 0x0C )
134 CMultiFontTextDrawer(
const SIZE& size, COLORREF backColor = CLR_INVALID, DWORD drawStyle = DT_CENTER | DT_VCENTER)
169 virtual void Draw(HDC dc,
int x = 0,
int y = 0)
const
174 COLORREF oldColor = ::GetBkColor(dc);
175 int oldBkMode = ::SetBkMode(dc, TRANSPARENT);
179 ::SetBkMode(dc, OPAQUE);
181 HGDIOBJ oldFont = ::GetCurrentObject(dc, OBJ_FONT);
185 ::SelectObject(dc, pa.
font);
190 if ( r.right > r.left && r.bottom > r.top )
195 ::SelectObject(dc, oldFont);
196 ::SetBkMode(dc, oldBkMode);
197 ::SetBkColor(dc, oldColor);
209 INDEX
Add(LPCTSTR str, HFONT font, COLORREF color)
#define loop(VAR, CNT)
loop構文.
CVectorT< TPart > m_aParts
情報
DWORD m_drawStyle
DrawTextスタイル
CVectorT< POINT > m_aOffsets
各PartのOFFSET
CMultiFontTextDrawer(COLORREF backColor=CLR_INVALID, DWORD drawStyle=DT_CENTER|DT_VCENTER)
コンストラクタ
virtual void Draw(HDC dc, int x=0, int y=0) const
[描画] 描画.
bool m_calc(HDC dc, DWORD style) const
計算
CMultiFontTextDrawer(const SIZE &size, COLORREF backColor=CLR_INVALID, DWORD drawStyle=DT_CENTER|DT_VCENTER)
コンストラクタ
INDEX Add(LPCTSTR str, HFONT font, COLORREF color)
[追加] 情報追加.
SIZE m_partsSize
全Partの大きさ
COLORREF m_backColor
背景カラー
bool AdjustSize(HDC dc, int margin=1)
[設定] サイズ調整.
virtual IDrawable * Clone(void) const
[作成] クローン作成.
static bool CalcTextSize(SIZE &_size, HDC dc, UINT drawStyle, LPCTSTR str)
[計算] 文字表示大きさ計算.
static bool DrawTextRect(RECT &_rect, HDC dc, DWORD drawStyle, const POINT &offset, COLORREF color1, COLORREF color2, LPCTSTR str)
[表示] 範囲文字表示.
virtual size_t GetSize(void) const
[取得] サイズ取得
TYP * GetBuffer(size_t size=0)
[操作] データアドレス取得
void ReleaseBuffer(void)
[操作] データの管理を元に戻す.
virtual bool RemoveAll(void)
[削除] 空化
virtual const TYP * ReferBuffer(void) const
[取得] データアドレス取得
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
void Copy(LPSTR _dst, LPCSTR src)
[複製] 文字列コピー(ASCII/SJIS用)
COLORREF textColor
テキストカラー