CFontHolder クラス
ストック フォント プロパティを実装し、Windows のフォント オブジェクトと IFont
インターフェイスの機能をカプセル化します。
構文
class CFontHolder
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CFontHolder::CFontHolder | CFontHolder オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CFontHolder::GetDisplayString | コンテナーのプロパティ ブラウザーに表示される文字列を取得します。 |
CFontHolder::GetFontDispatch | フォントの IDispatch インターフェイスを返します。 |
CFontHolder::GetFontHandle | Windows フォントへのハンドルを返します。 |
CFontHolder::InitializeFont | CFontHolder オブジェクトを初期化します。 |
CFontHolder::QueryTextMetrics | 関連するフォントの情報を取得します。 |
CFontHolder::ReleaseFont | CFontHolder オブジェクトをIFont インターフェイスおよびIFontNotification インターフェイスから切断します。 |
CFontHolder::Select | デバイス コンテキストにフォント リソースを選択します。 |
CFontHolder::SetFont | CFontHolder オブジェクトをIFont インターフェイスに接続します。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
CFontHolder::m_pFont | CFontHolder オブジェクトのIFont インターフェイスへのポインター。 |
解説
CFontHolder
には基底クラスはありません。
このクラスを使用して、コントロールのカスタム フォント プロパティを実装します。 このようなプロパティの作成の詳細については、「 ActiveX コントロール: フォントの使用」を参照してください。
継承階層
CFontHolder
要件
Header: afxctl.h
CFontHolder::CFontHolder
CFontHolder
オブジェクトを構築します。
explicit CFontHolder(LPPROPERTYNOTIFYSINK pNotify);
パラメーター
pNotify
フォントの IPropertyNotifySink
インターフェイスへのポインター。
解説
InitializeFont
を呼び出して、結果のオブジェクトを使用する前に初期化する必要があります。
CFontHolder::GetDisplayString
コンテナーのプロパティ ブラウザーに表示できる文字列を取得します。
BOOL GetDisplayString(CString& strValue);
パラメーター
strValue
表示文字列を保持する CString への参照。
戻り値
文字列が正常に取得された場合は 0 以外。それ以外の場合は 0。
CFontHolder::GetFontDispatch
この関数を呼び出して、フォントのディスパッチ インターフェイスへのポインターを取得します。
LPFONTDISP GetFontDispatch();
戻り値
CFontHolder
オブジェクトのIFontDisp
インターフェイスへのポインター。 GetFontDispatch
を呼び出す関数は、このインターフェイス ポインターでIUnknown::Release
を呼び出す必要があることに注意してください。
解説
GetFontDispatch
を呼び出す前にInitializeFont
を呼び出します。
CFontHolder::GetFontHandle
Windows フォントへのハンドルを取得するには、この関数を呼び出します。
HFONT GetFontHandle();
HFONT GetFontHandle(
long cyLogical,
long cyHimetric);
パラメーター
cyLogical
コントロールが描画される四角形の高さ (論理単位)。
cyHimetric
コントロールの高さ (MM_HIMETRIC 単位)。
戻り値
Font オブジェクトへのハンドル。それ以外の場合は NULL。
解説
cyLogical と cyHimetric の比率は、フォントのポイント サイズMM_HIMETRIC単位で表される適切な表示サイズを論理単位で計算するために使用されます。
表示サイズ = ( cyLogical / cyHimetric) X フォント サイズ
パラメーターのないバージョンでは、画面に合わせて正しくサイズ設定されたフォントへのハンドルが返されます。
CFontHolder::InitializeFont
CFontHolder
オブジェクトを初期化します。
void InitializeFont(
const FONTDESC* pFontDesc = NULL,
LPDISPATCH pFontDispAmbient = NULL);
パラメーター
pFontDesc
フォントの特性を指定するフォント記述構造体 ( FONTDESC) へのポインター。
pFontDispAmbient
コンテナーのアンビエント Font プロパティへのポインター。
解説
pFontDispAmbient が NULL でない場合、CFontHolder
オブジェクトは、コンテナーのアンビエント Font プロパティによって使用されるIFont
インターフェイスの複製に接続されます。
pFontDispAmbient が NULL の場合、新しい Font オブジェクトは、pFontDesc が指すフォントの説明から作成されるかpFontDescが NULL の場合は、既定の説明から作成されます。
CFontHolder
オブジェクトを構築した後、この関数を呼び出します。
CFontHolder::m_pFont
CFontHolder
オブジェクトのIFont
インターフェイスへのポインター。
LPFONT m_pFont;
CFontHolder::QueryTextMetrics
CFontHolder
オブジェクトによって表される物理フォントに関する情報を取得します。
void QueryTextMetrics(LPTEXTMETRIC lptm);
パラメーター
lptm
情報を受け取る TEXTMETRIC 構造体へのポインター。
CFontHolder::ReleaseFont
この関数は、IFont
インターフェイスからCFontHolder
オブジェクトを切断します。
void ReleaseFont();
CFontHolder::Select
この関数を呼び出して、指定したデバイス コンテキストにコントロールのフォントを選択します。
CFont* Select(
CDC* pDC,
long cyLogical,
long cyHimetric);
パラメーター
pDC
フォントが選択されているデバイス コンテキスト。
cyLogical
コントロールが描画される四角形の高さ (論理単位)。
cyHimetric
コントロールの高さ (MM_HIMETRIC 単位)。
戻り値
置き換えられるフォントへのポインター。
解説
cyLogical パラメーターと cyHimetric パラメーターの詳細については、GetFontHandle を参照してください。
CFontHolder::SetFont
既存のフォントを解放し、 CFontHolder
オブジェクトを IFont
インターフェイスに接続します。
void SetFont(LPFONT pNewFont);
パラメーター
pNewFont
新しい IFont
インターフェイスへのポインター。