TNB Library
公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
CTextDrawer クラス

テキスト描画クラス [詳解]

#include <TnbTextDrawer.h>

+ CTextDrawer の継承関係図

公開型

typedef CPointerHandleT< IDrawablePtr
 ポインタハンドル型宣言 [詳解]
 

公開メンバ関数

bool AdjustSize (int margin=1, HWND hWnd=NULL)
 [設定] サイズ調整. [詳解]
 
virtual IDrawableClone (void) const
 [作成] クローン作成. [詳解]
 
 CTextDrawer (const SIZE &size, HFONT font, COLORREF textColor, LPCTSTR str, DWORD drawStyle=DT_CENTER|DT_VCENTER, int margin=0)
 コンストラクタ [詳解]
 
 CTextDrawer (HFONT font, COLORREF textColor, LPCTSTR str, DWORD drawStyle=DT_CENTER|DT_VCENTER, int margin=0)
 コンストラクタ [詳解]
 
virtual void Draw (HDC dc, int x=0, int y=0) const
 [描画] 描画. [詳解]
 
virtual void DrawEx (HDC dc, int x, int y, LPARAM lParam) const
 [描画] 描画. [詳解]
 
DWORD GetDrawStyle (void) const
 [取得] スタイル取得. [詳解]
 
virtual bool GetSize (SIZE &_size) const
 [取得] サイズ取得. [詳解]
 
LPCTSTR GetString (void) const
 [取得] 文字列取得. [詳解]
 
COLORREF GetTextColor (void) const
 [取得] 文字色取得. [詳解]
 
virtual bool Resize (const SIZE &size)
 [設定] サイズ設定. [詳解]
 
void SetDrawStyle (DWORD drawStyle=DT_CENTER|DT_VCENTER)
 [設定] スタイル設定. [詳解]
 
void SetString (LPCTSTR str)
 [設定] 文字列設定. [詳解]
 
void SetTextColor (COLORREF color)
 [設定] 文字色設定. [詳解]
 

静的公開メンバ関数

static DWORD ButtonToDrawStyle (DWORD buttonStyle)
 [変換] ButtonスタイルをDrawTextスタイルに変換 [詳解]
 
static bool CalcTextRect (RECT &_rect, HDC dc, DWORD drawStyle, LPCTSTR str)
 [計算] 文字表示範囲計算. [詳解]
 
static bool CalcTextSize (SIZE &_size, HDC dc, UINT drawStyle, LPCTSTR str)
 [計算] 文字表示大きさ計算. [詳解]
 
static bool DrawTextRect (HDC dc, const RECT &rect, DWORD drawStyle, COLORREF color, LPCTSTR str)
 [表示] 範囲文字表示. [詳解]
 
static bool DrawTextRect (HDC dc, const RECT &rect, DWORD drawStyle, const POINT &offset, COLORREF color1, COLORREF color2, LPCTSTR str)
 [表示] 範囲文字表示. [詳解]
 
static bool DrawTextRect (RECT &_rect, HDC dc, DWORD drawStyle, COLORREF color, LPCTSTR str)
 [表示] 範囲文字表示. [詳解]
 
static bool DrawTextRect (RECT &_rect, HDC dc, DWORD drawStyle, const POINT &offset, COLORREF color1, COLORREF color2, LPCTSTR str)
 [表示] 範囲文字表示. [詳解]
 
static bool ModifyText (CSimpleStr &_str, const SIZE &size, HDC dc, LPCTSTR lpsz, UINT drawStyle=DT_END_ELLIPSIS|DT_NOPREFIX)
 [計算] 文字列編集. [詳解]
 
static bool ModifyText (CSimpleStr &_str, HWND hWnd, LPCTSTR lpsz, UINT drawStyle=DT_END_ELLIPSIS|DT_NOPREFIX)
 [計算] 文字列編集. [詳解]
 
static DWORD StaticToDrawStyle (DWORD staticStyle)
 [変換] StaticスタイルをDrawTextスタイルに変換 [詳解]
 

限定公開変数類

DWORD m_drawStyle
 DrawTextスタイル [詳解]
 
HFONT m_font
 フォント [詳解]
 
int m_margin
 左マージン [詳解]
 
SIZE m_size
 サイズ [詳解]
 
CSimpleStr m_str
 文字列 [詳解]
 
COLORREF m_textColor
 テキストカラー [詳解]
 

詳解

テキスト描画クラス

IDrawable インターフェースを持っています。

コンストラクタ時に指定されたテキストを描画します。
覚え書き
テキスト表示用のサービス関数もあります。
必要ファイル
TnbTextDrawer.h
日付
07/11/15 新規作成
07/12/13 VCENTER , BOTTOM の時の動作をマルチラインでも期待通りに出るようにした。
08/01/11 左マージンを追加
08/03/23 コンストラクタを追加。
08/02/22 Disable文字表示方法変更。
10/02/26 ゲッターメソッド追加。
10/03/02 ModifyText() メソッド、追加。
15/04/23 コンストラクト時サイズをアジャストするように変更。

TnbTextDrawer.h51 行目に定義があります。

型定義メンバ詳解

◆ Ptr

typedef CPointerHandleT<IDrawable> Ptr
inherited

ポインタハンドル型宣言

TnbDrawable.h89 行目に定義があります。

構築子と解体子

◆ CTextDrawer() [1/2]

CTextDrawer ( const SIZE &  size,
HFONT  font,
COLORREF  textColor,
LPCTSTR  str,
DWORD  drawStyle = DT_CENTER | DT_VCENTER,
int  margin = 0 
)

コンストラクタ

引数
sizeサイズ
fontフォント
textColorカラー
str文字列
drawStyleDrawTextスタイル指定。 省略すると 「DT_CENTER | DT_VCENTER」
margin左のマージ。省略すると0になります。

TnbTextDrawer.h65 行目に定義があります。

◆ CTextDrawer() [2/2]

CTextDrawer ( HFONT  font,
COLORREF  textColor,
LPCTSTR  str,
DWORD  drawStyle = DT_CENTER | DT_VCENTER,
int  margin = 0 
)

コンストラクタ

覚え書き
サイズは 0, 0 になります。
引数
fontフォント
textColorカラー
str文字列
drawStyleDrawTextスタイル指定。 省略すると 「DT_CENTER | DT_VCENTER」
margin左のマージ。省略すると0になります。

TnbTextDrawer.h79 行目に定義があります。

関数詳解

◆ AdjustSize()

bool AdjustSize ( int  margin = 1,
HWND  hWnd = NULL 
)

[設定] サイズ調整.

現在のサイズと文字列とDrawTextスタイルを使って、大きさを調整します。

引数
marginマージン。必要なサイズに加えるサイズです。
hWndDCを取得するハンドルを指定します。省略可能。
戻り値
true成功。
false失敗。

TnbTextDrawer.h186 行目に定義があります。

◆ ButtonToDrawStyle()

static DWORD ButtonToDrawStyle ( DWORD  buttonStyle)
static

[変換] ButtonスタイルをDrawTextスタイルに変換

引数
buttonStyleButtonスタイル
戻り値
DrawTextスタイル

TnbTextDrawer.h261 行目に定義があります。

◆ CalcTextRect()

static bool CalcTextRect ( RECT &  _rect,
HDC  dc,
DWORD  drawStyle,
LPCTSTR  str 
)
static

[計算] 文字表示範囲計算.

引数
[in,out]_rect表示範囲。戻りで、表示した範囲が設定されます。
[in]dcデバイスコンテキスト
[in]drawStyleDrawTextスタイル
[in]str表示文字
戻り値
true成功。
false失敗。

TnbTextDrawer.h325 行目に定義があります。

◆ CalcTextSize()

static bool CalcTextSize ( SIZE &  _size,
HDC  dc,
UINT  drawStyle,
LPCTSTR  str 
)
static

[計算] 文字表示大きさ計算.

引数
[in,out]_size表示サイズ。スタイルに複数行が含まれている場合、関数コール時、幅は設定しておいてください。 戻りで bottom が設定されます。
[in]dcデバイスコンテキスト
[in]drawStyleDrawTextスタイル
[in]str表示文字
戻り値
true成功。
false失敗。

TnbTextDrawer.h307 行目に定義があります。

◆ Clone()

virtual IDrawable * Clone ( void  ) const
virtual

[作成] クローン作成.

自分と同じ処理を行うクラスを作成します。

戻り値
ポインタ。使用後は delete する必要があります。

CNullDrawerを再実装しています。

CTextBkDrawerで再実装されています。

TnbTextDrawer.h90 行目に定義があります。

◆ Draw()

virtual void Draw ( HDC  dc,
int  x = 0,
int  y = 0 
) const
virtual

[描画] 描画.

指定のデバイスコンテキストの指定の座標に描画します。

引数
dcデバイスコンテキスト
xX座標
yY座標

CNullDrawerを再実装しています。

CTextBkDrawerで再実装されています。

TnbTextDrawer.h102 行目に定義があります。

◆ DrawEx()

virtual void DrawEx ( HDC  dc,
int  x,
int  y,
LPARAM  lParam 
) const
virtualinherited

[描画] 描画.

指定のデバイスコンテキストの指定の座標に描画します。

引数
dcデバイスコンテキスト
xX座標
yY座標
lParamLPARAM。

CBankDrawer, CPairDrawer, COffsetDrawer, CDrawingContainer, CWindowCaptionDrawerで再実装されています。

TnbDrawable.h83 行目に定義があります。

◆ DrawTextRect() [1/4]

static bool DrawTextRect ( HDC  dc,
const RECT &  rect,
DWORD  drawStyle,
COLORREF  color,
LPCTSTR  str 
)
static

[表示] 範囲文字表示.

引数
[in]dcデバイスコンテキスト
[in]rect表示範囲。
[in]drawStyleDrawTextスタイル
[in]color文字色1を指定します。 CLR_INVALID を指定すると、 堀のあるグレーの文字になります。 CLR_AUTOSELECT を指定すると、現在のテキストカラーを使います。
[in]str表示文字
戻り値
true成功。
false失敗。

TnbTextDrawer.h457 行目に定義があります。

◆ DrawTextRect() [2/4]

static bool DrawTextRect ( HDC  dc,
const RECT &  rect,
DWORD  drawStyle,
const POINT &  offset,
COLORREF  color1,
COLORREF  color2,
LPCTSTR  str 
)
static

[表示] 範囲文字表示.

引数
[in]dcデバイスコンテキスト
[in]rect表示範囲。
[in]drawStyleDrawTextスタイル
[in]offset文字1と文字2のずれ
[in]color1文字色1を指定します。 CLR_INVALID を指定すると、 堀のあるグレーの文字になります。 CLR_AUTOSELECT を指定すると、現在のテキストカラーを使います。
[in]color2文字色2を指定します。
[in]str表示文字
戻り値
true成功。
false失敗。

TnbTextDrawer.h423 行目に定義があります。

◆ DrawTextRect() [3/4]

static bool DrawTextRect ( RECT &  _rect,
HDC  dc,
DWORD  drawStyle,
COLORREF  color,
LPCTSTR  str 
)
static

[表示] 範囲文字表示.

引数
[in,out]_rect表示範囲。戻りで、表示した範囲が設定されます。
[in]dcデバイスコンテキスト
[in]drawStyleDrawTextスタイル
[in]color文字色1を指定します。 CLR_INVALID を指定すると、 堀のあるグレーの文字になります。 CLR_AUTOSELECT を指定すると、現在のテキストカラーを使います。
[in]str表示文字
戻り値
true成功。
false失敗。

TnbTextDrawer.h440 行目に定義があります。

◆ DrawTextRect() [4/4]

static bool DrawTextRect ( RECT &  _rect,
HDC  dc,
DWORD  drawStyle,
const POINT &  offset,
COLORREF  color1,
COLORREF  color2,
LPCTSTR  str 
)
static

[表示] 範囲文字表示.

引数
[in,out]_rect表示範囲。戻りで、表示した範囲が設定されます。
[in]dcデバイスコンテキスト
[in]drawStyleDrawTextスタイル
[in]offset文字1と文字2のずれ
[in]color1文字色1を指定します。 CLR_INVALID を指定すると、 堀のあるグレーの文字になります。 CLR_AUTOSELECT を指定すると、現在のテキストカラーを使います。
[in]color2文字色2を指定します。
[in]str表示文字
戻り値
true成功。
false失敗。

TnbTextDrawer.h366 行目に定義があります。

◆ GetDrawStyle()

DWORD GetDrawStyle ( void  ) const

[取得] スタイル取得.

戻り値
DrawTextスタイル

TnbTextDrawer.h173 行目に定義があります。

◆ GetSize()

virtual bool GetSize ( SIZE &  _size) const
virtualinherited

[取得] サイズ取得.

本オブジェクトの描画する領域の外接する四角のサイズを得ることが出来ます。

引数
[out]_sizeサイズ取得。
戻り値
trueサイズ取得成功。
falseデータがない。

IDrawableを実装しています。

TnbDrawable.h147 行目に定義があります。

◆ GetString()

LPCTSTR GetString ( void  ) const

[取得] 文字列取得.

戻り値
文字列

TnbTextDrawer.h154 行目に定義があります。

◆ GetTextColor()

COLORREF GetTextColor ( void  ) const

[取得] 文字色取得.

戻り値
カラー

TnbTextDrawer.h135 行目に定義があります。

◆ ModifyText() [1/2]

static bool ModifyText ( CSimpleStr _str,
const SIZE &  size,
HDC  dc,
LPCTSTR  lpsz,
UINT  drawStyle = DT_END_ELLIPSIS | DT_NOPREFIX 
)
static

[計算] 文字列編集.

表示幅に収まるように、文字列を編集します。

引数
[out]_str編集結果が格納される。
[in]size表示サイズ。
[in]dcデバイスコンテキスト。
[in]lpsz表示文字列。
[in]drawStyleDrawTextスタイル。通常、 DT_END_ELLIPSIS か DT_PATH_ELLIPSIS を指定します。省略すると、 DT_END_ELLIPSIS | DT_NOPREFIX です。
戻り値
true成功。
false失敗。

TnbTextDrawer.h477 行目に定義があります。

◆ ModifyText() [2/2]

static bool ModifyText ( CSimpleStr _str,
HWND  hWnd,
LPCTSTR  lpsz,
UINT  drawStyle = DT_END_ELLIPSIS | DT_NOPREFIX 
)
static

[計算] 文字列編集.

表示幅に収まるように、文字列を編集します。

引数
[out]_str編集結果が格納される。
[in]hWndウィンドウハンドル。ここから、サイズとフォントを得ます。
[in]lpsz表示文字列。
[in]drawStyleDrawTextスタイル。通常、 DT_END_ELLIPSIS か DT_PATH_ELLIPSIS を指定します。省略すると、 DT_END_ELLIPSIS | DT_NOPREFIX です。
戻り値
true成功。
false失敗。

TnbTextDrawer.h501 行目に定義があります。

◆ Resize()

virtual bool Resize ( const SIZE &  size)
virtualinherited

[設定] サイズ設定.

本オブジェクトの描画する領域の外接する四角のサイズを設定することが出来ます。

引数
sizeサイズ。
戻り値
trueサイズ変更成功。
false失敗。サイズ変更はサポートしません。

IDrawableを実装しています。

TnbDrawable.h160 行目に定義があります。

◆ SetDrawStyle()

void SetDrawStyle ( DWORD  drawStyle = DT_CENTER | DT_VCENTER)

[設定] スタイル設定.

覚え書き
サイズは変化しません。
引数
drawStyleDrawTextスタイル指定。 省略すると 「DT_CENTER | DT_VCENTER」

TnbTextDrawer.h164 行目に定義があります。

◆ SetString()

void SetString ( LPCTSTR  str)

[設定] 文字列設定.

覚え書き
サイズは変化しません。
引数
str文字列

TnbTextDrawer.h145 行目に定義があります。

◆ SetTextColor()

void SetTextColor ( COLORREF  color)

[設定] 文字色設定.

引数
colorカラー

TnbTextDrawer.h126 行目に定義があります。

◆ StaticToDrawStyle()

static DWORD StaticToDrawStyle ( DWORD  staticStyle)
static

[変換] StaticスタイルをDrawTextスタイルに変換

引数
staticStyleStaticスタイル
戻り値
DrawTextスタイル

TnbTextDrawer.h217 行目に定義があります。

メンバ詳解

◆ m_drawStyle

DWORD m_drawStyle
protected

DrawTextスタイル

TnbTextDrawer.h529 行目に定義があります。

◆ m_font

HFONT m_font
protected

フォント

TnbTextDrawer.h526 行目に定義があります。

◆ m_margin

int m_margin
protected

左マージン

TnbTextDrawer.h530 行目に定義があります。

◆ m_size

SIZE m_size
protectedinherited

サイズ

TnbDrawable.h109 行目に定義があります。

◆ m_str

CSimpleStr m_str
protected

文字列

TnbTextDrawer.h528 行目に定義があります。

◆ m_textColor

COLORREF m_textColor
protected

テキストカラー

TnbTextDrawer.h527 行目に定義があります。