最終更新 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
標準でインストールされるフォントは他にもありますが、だいたい
これらを使っていれば間違いないと思います。
|