Last Update : 2007/06/xx
HSPのウィンドウ内で利用するフォント(デザイン、大きさサイズ)を指定する命令です。命令名の由来は、そのまま「font」から。
font命令で指定したフォントが反映されるところは次の2点のみです。これ以外(システム依存のタイトルバー、dialog命令)は効果がありません。
font "フォント名", フォントの大きさ, フォントのスタイル
まずは、フォントの名前。正確なフォント名を記述する必要があります。個々のパソコンに含まれているフォントを呼び出す形なので、自分の環境で表示できたからといって、必ずしも他のパソコンで表示できるとは限りません。(OSによる違い、ソフトウェアにバンドルされているフォントが導入されている場合)
ひとまず、有名どころでフォント名の書き方。英文字の全角・半角、半角スペースの場所に注意が必要です。「等幅フォント」や「プロポーショナルフォント」という用語については、sysfont命令の説明ページで簡単に解説してます。
フォントの例 | |
MS 明朝 | 明朝体の等幅フォント。(「MS」は全角、以下スペースはすべて半角) |
MS P明朝 | 明朝体のプロポーショナルフォント。(「MS」と「P」は全角) |
MS ゴシック | ゴシック体の等幅フォント。(「MS」は全角) |
MS Pゴシック | ゴシック体のプロポーショナルフォント。(「MS」と「P」は全角) |
MS UI Gothic | [Windows 98以降] ゴシック体のプロポーショナルフォント。(すべて半角) |
<参考> 英文字フォント: 「Arial」、「Courier」、「Courier New」、「MS Sans Serif」、「Times New Roman」 |
第1パラメータは、フォントの大きさサイズで、文字の高さに相当します。HSPのobjsize命令などのサイズ(単位は「ドット」)とは別物です。数字が大きいだけ文字が大きく表示されることになります。
基本的な指定値は1〜になります。0を指定した場合は、指定したフォントのデフォルトの大きさです。指定せずに省略した場合は、「12」が反映されます。
第2パラメータはフォントの表示スタイルです。複数組み合わせて指定できます。
フォントのスタイル | |
0 | 標準。[ HSP ] |
1 | 太字。[ HSP ] |
2 | イタリック体・斜体。[ HSP ] |
4 | 下線・アンダーライン。[ HSP ] |
8 | 打ち消し線・取り消し線。[ |
16 | アンチエイリアス。ドットのギザギザ感(ジャギー)をなくして滑らかに表示するスムージング処理を文字に施します。 [ Windows 9x系(98/Me) ] 有効にしておいても、処理は行われません。 [ Windows NT系(2000/XP/Vista) ] 基本的に処理が行われます。条件として、(1)フォントがアンチエイリアスに対応している、(2)フォントサイズがある程度大きめ、(3)screen命令やbgscr命令の画面モードがパレットモードではなくフルカラーモード。 |
■ 適用されてるフォント情報を取得するには?
HSPのBMSCR構造体をチェックすると、HSPのウィンドウに反映されてるフォントのサイズやスタイル、フォント名を取得できます。(→
HSP3 あれこれ 文字列)
■
オブジェクトのフォントを別のフォントやサイズに切り替えるには?
指定したフォントがすでに反映されたオブジェクトのフォントを別のものに切り替えるには、Win32
API関数(CreateFont関数、CreateFontIndirect関数)を使って新規にフォントハンドルを生成し、そのフォントをsendmsg命令のWM_SETFONTで送信して適用させる処理が必要です。
■ フォント選択ダイアログを表示するには?
ユーザーにフォント名やフォントサイズを選択させるフォント選択ダイアログは、HSPの標準命令には存在しません。Win32
API関数のChooseFont関数を呼ぶ必要があります。「フォント選択ダイアログ
HSP」や「ChooseFont HSP」のようなキーワードで検索してください。HSP3にも「mod_fontdlg.as」モジュール(fontdlg命令)が用意されてます。
簡単なサンプルスクリプト。
font "MS Pゴシック", 40, 1 mes "Let's HSP!" font "HG行書体", 20 mes "プログラミング"
オブジェクトの場合、font命令で指定したフォントを反映させるには、objmode命令(モード2)を一度呼んでおく必要があります。
objmode 2 font "MS UI Cothic", , 1 + 4 chkbox "チェック", a
注意点として、font命令はハードディスク上(システムフォルダの「Fonts」)にあるフォントファイルを読み込んで、フォントデータを生成する処理が内部で行われます。サイズやスタイルの違いがないフォントをひたすら何回も呼ぶと、無駄にパフォーマンスを食います。たとえば、下のサンプルは表示される結果は全く同じですが、ソースAの方が高速です。(自分の環境ではソースBと比べて50%ぐらい)
// ソースA button "start", *start stop *start // ここから font "MS Pゴシック", 50 repeat 1000 mes "Let's HSP!" loop // ここまで dialog "done."
// ソースB button "start", *start stop *start // ここから repeat 1000 font "MS Pゴシック", 50 mes "Let's HSP!" loop // ここまで dialog "done."