<Return[C]><Top>

CreateFont

Declare Function Api_CreateFont& Lib "gdi32" Alias "CreateFontA" (ByVal Hei&, ByVal Wid&, ByVal Esc&, ByVal Ori&, ByVal Wei&, ByVal Ita&, ByVal Und&, ByVal Stk&, ByVal Chr&, ByVal Out&, ByVal Clp&, ByVal Qua&, ByVal Pit&, ByVal Face$)

Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long

指定された特性を持つ論理フォントを作成する。作成された論理フォントは、以後、任意のデバイスのフォントとして選択できる。

パラメータ
nHeight
    フォントの文字セルまたは文字の高さを論理単位で指定する。

    文字の高さ(em height としても知られている)とは、文字セルの高さから内部レディング(アクセント記号などのためのスペース)の高さを

    引いたもの。フォントマッパーは、nHeight パラメータに指定された値を次のように処理する。

    値          

処理                                                                                                                                    

    >0

指定された値をデバイス単位に変換し、それを利用可能な各フォントのセルの高さと比較する。

     0

フォントを探す際に、既定の高さを使う。

    <0

指定された値をデバイス単位に変換し、その絶対値を利用可能な各フォントの文字の高さと比較する。

    どちらの高さの比較を行う場合にも、フォントマッパーは、要求されたサイズを超えない最大のフォントを探する。
    このマッピングは、フォントが初めて使用されたときに行われる。
    MM_TEXT マッピングモードでは、次の式を利用して、ポイント数からフォントの高さへの変換ができる。
    nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72)
nWidth
    フォントの平均文字幅を論理単位で指定する。0 を指定すると、条件に最も近い値が選択される。

    条件に最も近い値は、利用可能な各フォントの現在のデバイスでの縦横比とデジタル化された縦横比の差の絶対値を比較することにより決

    定される。
nEscapement
    文字送りの方向と X 軸との角度を 10 分の 1 度単位で指定する。

    文字送りの方向とは、テキスト行のベースラインの方向のこと。
    Windows NT/2000:GM_ADVANCED グラフィックモードでは、文字列の文字送りの方向(nEscapement パラメータ)を、文字列内の

    各文字の向き(nOrientation パラメータ)とは独立して指定できる。
    GM_COMPATIBLE グラフィックモードでは、文字送りの方向と文字の向きの両方ともが nEscapement パラメータにより決まる。

    nEscapement パラメータと nOrientation パラメータには、同じ値を指定してください。
    Windows 95:文字送りの方向も文字の向きも nEscapement パラメータにより決まる。

    nEscapement パラメータと nOrientation パラメータには、同じ値を指定する。
nOrientation
    各文字のベースラインと X 軸との角度を 10 分の 1 度単位で指定する。
fnWeight
    フォントの太さを表す 0 から 1000 までの範囲内の値を指定する。

    たとえば、400 を指定すると標準の太さになり、700 を指定すると太字になる。0 を指定すると、既定の太さが選択される。
    次の定数を利用すると便利である。

    値                             

太さ       

    FW_DONTCARE

0

    FW_THIN

100

    FW_EXTRALIGHT

200

    FW_ULTRALIGHT

200

    FW_LIGHT

300

    FW_NORMAL

400

    FW_REGULAR

400

    FW_MEDIUM

500

    FW_SEMIBOLD

600

    FW_DEMIBOLD

600

    FW_BOLD

700

    FW_EXTRABOLD

800

    FW_ULTRABOLD

800

    FW_HEAVY

900

    FW_BLACK

900

fdwItalic
    斜体にするかどうかを指定する。True を指定すると、斜体になる。
fdwUnderline
    下線を付けるかどうかを指定する。True を指定すると、下線付きになる。
fdwStrikeOut
    取り消し線を付けるかどうかを指定する。True を指定すると、取り消し線が付く。
fdwCharSet
    フォントの文字セットを指定する。次の値が定義されている。
    ANSI_CHARSET(Windows 文字セット)
    BALTIC_CHARSET
    CHINESEBIG5_CHARSET
    DEFAULT_CHARSET(指定なし)
    EASTEUROPE_CHARSET
    GB2312_CHARSET
    GREEK_CHARSET
    HANGUL_CHARSET
    MAC_CHARSET
    OEM_CHARSET(OEM 文字セット)
    RUSSIAN_CHARSET
    SHIFTJIS_CHARSET(シフト JIS 文字セット)
    SYMBOL_CHARSET
    TURKISH_CHARSET
    Windows NT/2000 および中東版 Windows 3.1 以降:
        HEBREW_CHARSET
        ARABIC_CHARSET
    Windows NT/2000 およびタイ語版 Windows 3.1 以降:
        THAI_CHARSET
    OEM 文字セット(OEM_CHARSET)の文字は、オペレーティングシステムに依存する。
    Windows 95/98:DEFAULT_CHARSET を指定すると、フォントの名前とサイズに、完全に論理フォントを表すものを指定することができ

    る。指定したフォント名のフォントが存在しなかった場合、あらゆる文字セットが指定したフォントの代替として使用される可能性がある。

    このため、予期しない結果となるのを避けるために、できるだけ DEFAULT_CHARSET は使わないこと。
    Windows NT/2000:DEFAULT_CHARSET を指定すると、文字セットは現在のシステムロケールに基づいた値に設定される。

    たとえば、システムロケールが[英語(U.S.)]の場合なら、ANSI_CHARSET に設定される。
fdwOutputPrecision
    出力精度を指定する。出力精度は、実際の出力が、要求されたフォントの高さ、幅、文字の向き、文字送りの方向、ピッチ、およびフォ

    ント名にどの程度一致していなければならないかを示する。次の値のいずれかを指定する。

    値                                          

意味                                                                                                          

    OUT_CHARACTER_PRECIS

使用しない。

    OUT_DEFAULT_PRECIS

既定の動作に任せる。

    OUT_DEVICE_PRECIS

同じ名前のフォントが複数あった場合は、デバイスフォントを選択するよう指示する。

    OUT_OUTLINE_PRECIS

Windows NT/2000:TrueType フォントやその他のアウトラインベースのフォントを選択するよう指示する。

    OUT_RASTER_PRECIS

同じ名前のフォントが複数あった場合は、ラスタフォントを選択するよう指示する。

    OUT_STRING_PRECIS

使用しない(ただし、ラスタフォントが列挙されるときには、この値が返される)。

    OUT_STROKE_PRECIS

Windows NT/2000:使用しない(ただし、TrueType フォントやその他のアウトラインベースのフォント、

 

ベクタフォントが列挙されるときには、この値が返される)。

 

Windows 95/98:ベクタフォントを選択するよう指示する(TrueType フォントやベクタフォントが列挙される

 

ときにも、この値が返される)。

    OUT_TT_ONLY_PRECIS

TrueType フォントだけを選択するよう指示する。システムに TrueType フォントが組み込まれていないとき

 

は、既定の動作になる。

    OUT_TT_PRECIS

同じ名前のフォントが複数あった場合は、TrueType フォントを選択するよう指示する。

fdwClipPrecision
    クリッピング精度を指定する。クリッピング精度とは、文字の一部がクリッピング領域の外にはみ出たときに、その文字をクリップする方法を   

    定義するものである。次の値のいずれか、またはその組み合わせを指定できる。

    値                                           

意味                                                                                                                         

    CLIP_DEFAULT_PRECIS

既定の動作に任せる。

    CLIP_CHARACTER_PRECIS

使用しない。

    CLIP_STROKE_PRECIS

使用しない(ただし、ラスタフォント、ベクタフォント、TrueType フォントが列挙されるときには、この値が

 

返される)。

 

Windows NT/2000:互換性のために、フォントを列挙するときには必ずこの値が返される。

    CLIP_MASK

使用しない。

    CLIP_EMBEDDED

読み取り専用の埋め込みフォントを使用するには、このフラグを指定しなければならない。

    CLIP_LH_ANGLES

この値を使うと、すべてのフォントの回転方向が座標系の方向(右手座標系か左手座標系か)によっ

 

て決められるようになる。

 

この値を指定しない場合は、デバイスフォントは常に反時計回りに、その他のフォントは座標系の方向に

 

従って回転する。

    CLIP_TT_ALWAYS

使用しない。

fdwQuality
    出力品質を指定する。

    出力品質とは、GDI が、論理フォントの属性と実際の物理フォントの属性とをどの程度まで一致させなければならないかを定義する。

    次の値のいずれを指定する。

    値                                             

意味                                                                                                                        

    ANTIALIASED_QUALITY

Windows NT 4.0 以降:アンチエイリアス処理(スムージング)がサポートされているフォントについて

 

は、サイズが小さすぎたり大きすぎる場合には、フォントにアンチエイリアス処理が施される。

 

Plus!をインストールした Windows 95 以降:そのフォントでアンチエイリアス処理がサポートされているこ

 

とに加えて、ディスプレイが 8 ビット(256 色)以上表示でき、単一平面デバイスでなくてはならない。

 

パレットディスプレイであってはならず、複数ディスプレイモニタのセットアップになっていてはならない。

 

さらに、DIBSection で使用するよりも前に、スクリーンデバイスコンテキストでその TrueType フォントを

 

選択しておかなければならない。以上の条件が満たされていなければ、アンチエイリアス処理は行われ

 

ない。

    DEFAULT_QUALITY

フォントの文字品質は重視されない。

    DRAFT_QUALITY

フォントの文字品質は、PROOF_QUALITY を使用したときほどは重視されない。GDI のラスタフォント

 

については、スケーリングが可能になり、使用可能なフォントサイズが増えますが、品質はかなり低くな

 

る場合もある。必要であれば、太字、斜体、下線付き、取り消し線付きなどのフォントが合成される。

    NONANTIALIASED_QUALITY

Plus!をインストールした Windows 95、Windows 98、Windows NT 4.0、および Windows 2000:ア

 

ンチエイリアス処理は一切行われない。

    PROOF_QUALITY

フォントの文字品質が、論理フォントの属性を正確に一致させることよりも重視される。

 

GDI のラスタフォントについては、スケーリングが可能になり、最もサイズの近いフォントが選択される。

 

PROOF_QUALITY を指定した場合、選択されたフォントのサイズは正確には一致しない場合がある

 

が、フォントの品質は高く、文字の形が歪むことはありません。必要であれば、太字、斜体、下線付

 

き、取り消し線付きなどのフォントが合成される。

fdwPitchAndFamily
    フォントのピッチとファミリを指定する。下位 2 ビットでフォントのピッチを指定する。次の値のいずれかを使う。
    DEFAULT_PITCH(既定)
    FIXED_PITCH(固定幅)
    VARIABLE_PITCH(可変幅)
    上位 4 ビットでフォントファミリを指定する。次の値のいずれかを使う。

    値                          

説明                                                                                                                                           

    FF_DECORATIVE

装飾付きフォントである。Old English フォントなどがある。

    FF_DONTCARE

ファミリを指定しない。または、ファミリが不明である。

    FF_MODERN

固定ストローク幅を持つ、セリフ(文字のひげ飾り)付きまたはセリフなしのフォント。Pica、Elite、Courier NewR

 

などがある。

    FF_ROMAN

可変ストローク幅を持つセリフ付きフォントである。MSR Serif などがある。

    FF_SCRIPT

手書き風のフォントである。Script、Cursive などがある。

    FF_SWISS

可変ストローク幅を持つセリフなしフォントである。MS Sans Serif などがある。

    fdwPitchAndFamily パラメータには、通常、ピッチ定数とファミリ定数を OR 演算子で組み合わせて指定する。
    フォントファミリは、フォントの見た目を定義する。指定したフォント名のフォントが利用できないときに、フォントの選択に使われる。
lpszFace
    フォントの名前が入った NULL で終わる文字列へのポインタを指定する。

    文字列の長さは、終端の NULL 文字も含めて 32 文字以下にしなければならない。

    EnumFontFamilies 関数を使うと、現在利用可能なフォントの名前を列挙できる。
    NULL ポインタや空の文字列へのポインタを指定すると、ほかのパラメータで指定した条件に合うフォントの中から最初に見つかったフォント

    が選択される。

戻り値
    関数が成功すると、論理フォントのハンドルが返る。
    関数が失敗すると、NULL が返る。
    Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。