TNB Library
公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CFontHandle クラス

HFONT型ハンドルハンドル [詳解]

#include <TnbFontHandle.h>

+ CFontHandle の継承関係図

公開メンバ関数

 CFontHandle (const CFontHandle &other)
 コピーコンストラクタ. [詳解]
 
 CFontHandle (const LOGFONT &attr)
 代入コンストラクタ. [詳解]
 
 CFontHandle (HFONT hFont)
 代入コンストラクタ. [詳解]
 
 CFontHandle (void)
 コンストラクタ. [詳解]
 
HFONT Detach (void)
 [設定] デタッチ. [詳解]
 
bool GetAttributes (LOGFONT &_attr) const
 [取得] 属性取得. [詳解]
 
int GetReferCount (void) const
 [取得] 参照数取得. [詳解]
 
bool IsNull (void) const
 [確認] NULLチェック [詳解]
 
void Null (void)
 [設定] 開放. [詳解]
 
 operator const HFONT (void) const
 [取得] TYP取得. [詳解]
 
 operator HFONT (void)
 [取得] TYP取得. [詳解]
 
bool operator!= (HFONT t) const
 [比較] TYP比較. [詳解]
 
HFONT operator-> (void)
 [取得] TYP取得. [詳解]
 
const HFONT operator-> (void) const
 [取得] TYP取得. [詳解]
 
bool operator== (HFONT t) const
 [比較] TYP比較. [詳解]
 
HFONT * ReferP (void)
 [取得] TYPのポインタ取得. [詳解]
 
HFONT const * ReferP (void) const
 [取得] TYPのポインタ取得. [詳解]
 
bool Set (const LOGFONT &attr)
 [設定] フォント設定. [詳解]
 
bool Set (const LOGFONT &attr, HDC dc)
 [設定] フォント設定. [詳解]
 
bool Set (HWND hWnd, double mul=1.0)
 [設定] フォント設定. [詳解]
 
bool Set (int pointSize, LPCTSTR lpszFaceName, HDC dc=NULL)
 [設定] フォント設定. [詳解]
 
bool SetAsBold (HFONT hFont)
 [設定] フォント設定. [詳解]
 
bool SetClone (HFONT hFont, double mul=1.0)
 [設定] フォント設定. [詳解]
 
int SetReferCount (int iCount)
 [設定] 参照数設定 [詳解]
 
bool SetSystemCaptionFont (void)
 [設定] キャプションバーフォント設定. [詳解]
 
bool SetSystemMenuFont (void)
 [設定] メニューフォント設定. [詳解]
 
void SetToWindow (HWND hWnd, bool isRedraw=true) const
 [取得] ウィンドウへ設定. [詳解]
 

静的公開メンバ関数

static bool GetAttributes (LOGFONT &_attr, HFONT hFont)
 [取得] 属性取得. [詳解]
 

詳解

HFONT型ハンドルハンドル

HFONT 、一つを管理します。参照する本インスタンスがなくなると、自動的に DeleteObject() します。
注意
一度本クラスで管理したら、 HFONT として取り出したものを一時的に以外には使用しないでください。 特に HFONT を介しての複製は問題が発生します。本クラスの管理下からはずす場合、 Detach() を使用します。
fh.Set(90, "tahoma");
HFONT h1 = fh; // fh で管理している HFONT を参照。
{
CFontHandle temp = h1; // ハンドルを記憶
} // デストラクタ時に h1 のハンドルを破棄。
HFONT h2 = fh; // bh で管理している HFONT を参照。
// しかし temp のデストラクタ時に 破棄されているので、
// ここでは無効なハンドルが h2 に代入される。
CFontHandle(void)
コンストラクタ.
Definition: TnbFontHandle.h:89
必要ファイル
TnbFontHandle.h
日付
10/05/13 新規作成。
11/08/16 キャラセットを DEFAULT_CHARSET から SHIFTJIS_CHARSET へ(ただし SJISプロジェクトの場合)
13/02/13 NONCLIENTMETRICS 構造体が WINVER 0x600 から大きくなっている問題に対処
14/03/28 SetToWindow() を新規追加。

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

構築子と解体子

◆ CFontHandle() [1/4]

CFontHandle ( void  )

コンストラクタ.

NULL状態のビットマップ(HFONT を管理していない)オブジェクトが作成されます。

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

◆ CFontHandle() [2/4]

CFontHandle ( const CFontHandle other)

コピーコンストラクタ.

コピー元に有効な HFONTがある場合、本インスタンスでも、同じ HFONT を参照するようになります。

引数
otherコピー元

TnbFontHandle.h98 行目に定義があります。

◆ CFontHandle() [3/4]

CFontHandle ( HFONT  hFont)

代入コンストラクタ.

指定のフォントハンドルを保持するオブジェクトが作成されます。 指定したハンドルは本インスタンスが管理します。破棄しないでください。

引数
hFontフォントハンドル。

TnbFontHandle.h108 行目に定義があります。

◆ CFontHandle() [4/4]

CFontHandle ( const LOGFONT &  attr)

代入コンストラクタ.

指定の属性からフォントを作成し、それを本インスタンスで管理します。

引数
attrフォント属性.

TnbFontHandle.h117 行目に定義があります。

関数詳解

◆ Detach()

HFONT Detach ( void  )

[設定] デタッチ.

本インスタンスが破棄してもハンドルを破棄しないように取り出します。 本インスタンスは NULL状態になります。

戻り値
NULLハンドルを持っていない。
NULL以外HFONT。 使用後は、明示的に ::DeleteObject() してください。

TnbFontHandle.h290 行目に定義があります。

◆ GetAttributes() [1/2]

bool GetAttributes ( LOGFONT &  _attr) const

[取得] 属性取得.

本インスタンスが管理しているフォントの属性を返します。

引数
[out]_attr取得した属性が格納されます。
戻り値
true成功.
false失敗.

TnbFontHandle.h309 行目に定義があります。

◆ GetAttributes() [2/2]

static bool GetAttributes ( LOGFONT &  _attr,
HFONT  hFont 
)
static

[取得] 属性取得.

指定のフォントの属性を返します。

引数
[out]_attr取得した属性が格納されます。
[in]hFontフォント。
戻り値
true成功.
false失敗.

TnbFontHandle.h336 行目に定義があります。

◆ GetReferCount()

int GetReferCount ( void  ) const
inherited

[取得] 参照数取得.

TYPポインタが参照されている数を知ることが出来ます。

覚え書き
通常使う必要は有りません。
戻り値
参照数

TnbPointerHandle.h221 行目に定義があります。

◆ IsNull()

bool IsNull ( void  ) const
inherited

[確認] NULLチェック

戻り値
trueTYPポインタ無し
falseTYPポインタ有り

TnbPointerHandle.h197 行目に定義があります。

◆ Null()

void Null ( void  )
inherited

[設定] 開放.

本インスタンスが管理しているTYPを開放します。

覚え書き
operator=(NUL) と同じ動作です。
TYPが他からも使われていたら、参照を一つ減らすだけです。

TnbPointerHandle.h229 行目に定義があります。

◆ operator const HFONT()

operator const HFONT ( void  ) const
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h262 行目に定義があります。

◆ operator HFONT()

operator HFONT ( void  )
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h255 行目に定義があります。

◆ operator!=()

bool operator!= ( HFONT  t) const
inherited

[比較] TYP比較.

保持している TYPと比較します。

引数
t比較対照
戻り値
false同じ
true異なる

TnbPointerHandle.h294 行目に定義があります。

◆ operator->() [1/2]

HFONT operator-> ( void  )
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h269 行目に定義があります。

◆ operator->() [2/2]

const HFONT operator-> ( void  ) const
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h276 行目に定義があります。

◆ operator==()

bool operator== ( HFONT  t) const
inherited

[比較] TYP比較.

保持している TYPと比較します。

引数
t比較対照
戻り値
true同じ
false異なる

TnbPointerHandle.h285 行目に定義があります。

◆ ReferP() [1/2]

HFONT * ReferP ( void  )
inherited

[取得] TYPのポインタ取得.

戻り値
TYPのポインタ

TnbPointerHandle.h242 行目に定義があります。

◆ ReferP() [2/2]

HFONT const * ReferP ( void  ) const
inherited

[取得] TYPのポインタ取得.

戻り値
TYPのポインタ

TnbPointerHandle.h248 行目に定義があります。

◆ Set() [1/4]

bool Set ( const LOGFONT &  attr)

[設定] フォント設定.

指定の属性からフォントを作成し、それを本インスタンスで管理します。

引数
attrフォント属性.
戻り値
true成功.
false失敗.

TnbFontHandle.h130 行目に定義があります。

◆ Set() [2/4]

bool Set ( const LOGFONT &  attr,
HDC  dc 
)

[設定] フォント設定.

指定の属性からフォントを作成し、それを本インスタンスで管理します。

覚え書き
高さ(attr.lfHeoght)は 1/10 ポイント単位で解釈されます。
引数
attrフォント属性.
dc高さを論理単位に変換するために使用するデバイスコンテキスト。 NULL を指定すると画面デバイスを使います。
戻り値
true成功.
false失敗.

TnbFontHandle.h146 行目に定義があります。

◆ Set() [3/4]

bool Set ( HWND  hWnd,
double  mul = 1.0 
)

[設定] フォント設定.

指定のウィンドウに設定されているフォントを読み出し、複製を本インスタンスで管理します。

引数
hWndウィンドウハンドル。
mul倍率
戻り値
true成功.
false失敗.

TnbFontHandle.h197 行目に定義があります。

◆ Set() [4/4]

bool Set ( int  pointSize,
LPCTSTR  lpszFaceName,
HDC  dc = NULL 
)

[設定] フォント設定.

指定のサイズとフォント名からフォントを作成し、それを本インスタンスで管理します。

引数
pointSizeフォントサイズ(1/10 ポイント単位).
lpszFaceNameフォント名。
dc高さを論理単位に変換するために使用するデバイスコンテキスト。 NULL を指定すると画面デバイスを使います。
戻り値
true成功.
false失敗.

TnbFontHandle.h177 行目に定義があります。

◆ SetAsBold()

bool SetAsBold ( HFONT  hFont)

[設定] フォント設定.

指定のフォントを太文字にしたフォントを作成し、本インスタンスで管理します。

引数
hFontフォントハンドル
戻り値
true成功.
false失敗.

TnbFontHandle.h214 行目に定義があります。

◆ SetClone()

bool SetClone ( HFONT  hFont,
double  mul = 1.0 
)

[設定] フォント設定.

指定のフォントハンドルを複製したものを本オブジェクトで管理します。

引数
hFontフォント。
mul倍率
戻り値
true成功.
false失敗.

TnbFontHandle.h234 行目に定義があります。

◆ SetReferCount()

int SetReferCount ( int  iCount)
inherited

[設定] 参照数設定

覚え書き
通常使う必要は有りません。例外として、0以下の参照数は、参照を増やすことが 出来ない様になっているため、意図的に使用することが出来ます。
引数
iCount設定する参照数
戻り値
設定前の参照数

TnbPointerHandle.h209 行目に定義があります。

◆ SetSystemCaptionFont()

bool SetSystemCaptionFont ( void  )

[設定] キャプションバーフォント設定.

キャプションバーと同じフォントを作成し、本インスタンスで管理します。

戻り値
true成功.
false失敗.

TnbFontHandle.h255 行目に定義があります。

◆ SetSystemMenuFont()

bool SetSystemMenuFont ( void  )

[設定] メニューフォント設定.

メニューと同じフォントを作成し、本インスタンスで管理します。

戻り値
true成功.
false失敗.

TnbFontHandle.h271 行目に定義があります。

◆ SetToWindow()

void SetToWindow ( HWND  hWnd,
bool  isRedraw = true 
) const

[取得] ウィンドウへ設定.

本インスタンスが管理しているフォントをウィンドウに設定します。

引数
hWndウィンドウハンドル
isRedrawtrue ならすぐに再描画

TnbFontHandle.h321 行目に定義があります。