文字のフォントを変更する

最終更新 2003 /

サンプルのダウンロード → API_CreateFont.lzh(37k)

サンプルプログラムのスクリーンショット

全ソースコード


    
CreateFont 関数
    
    対応しているバージョン
    95, 98, Me, NT3.1以降, 2000, XP
    
    使用しているライブラリとヘッダ
    wingdi.h
    gdi32.lib
表示する文字のフォントを変更したいときは CreateFont() 関数を 使います。 GDI関数の扱いになれている方なら、ソースを見ていただければ フォントを作成して表示するまでの流れがお分かり頂けると思います。 1.HDC を取得 2.オブジェクト変数を2つ宣言( フォントの場合は HFONT ) 3.CreateFont関数でフォントを作成 4.フォントを選択(この時、元のフォントをもう一つの変数にしまう) 5.表示する文字の背景や色を設定する 6.文字を表示 7.フォントを元に戻す 8.DeleteObject() 関数でオブジェクト変数を削除 9.HDC を解放 このような流れで処理します。 手順8.と9.は忘れないようにしましょう。忘れるとメモリリーク (リソース(メモリ)が減ったままになる現象)の原因になります。 ※メモリリークをそのまま放置しておくとシステムが不安定になります。 いちいち文字を表示するたびにこういう処理を書くのはめんどうなので うまく関数を作るとよいと思います。以下に簡単な例を示します。 // ShowFont() の使い方 ( 以下は WinMain() の中などで処理します )

HDC hDC = GetDC( hWnd );

char text[100];
wsprintf( text, "文字だよ〜" );

FONTINFO fi;
fi.nSize        = 50;
fi.bBold        = FALSE;
fi.bItalic      = TRUE;
fi.bUnderLine   = FALSE;
fi.bStrikeOut   = FALSE;
fi.lpszFontName = "HG正楷書体-PRO";

ShowFont( hDC, 100, 100, text, RGB(255,0,100), &fi );

ReleaseDC( hWnd, hDC );

//hWnd には CreateWindow() 関数でウィンドウを作成した時に
//得られる値が入っています
表示できるフォントというのは、マシンにインストールされている フォントで変わります。自分のマシンにあるフォントが、他人の マシンにもあるとは限りません。再現性を追及するのなら、文字を 絵にしてしまうか、ウィンドウズに標準でインストールされている フォントを使うようにしましょう。 フォントがない場合はデフォルトのMS ゴシックで表示されます。 ●ウィンドウズで共通にインストールされるフォントの例 日本語対応 MS ゴシック MS 明朝 MS Pゴシック MS P明朝 Ms Gothic Ms Mincho 半角英数字のみ Arial Bookman Old Style Century Symbol Georgia Times New Roman 標準でインストールされるフォントは他にもありますが、だいたい これらを使っていれば間違いないと思います。

| home |