命令講座 <font命令>

Last Update : 2007/06/xx

font命令 (文字列の表示フォント指定)

 文字の描画を行うmes命令・print命令の文字列で使用されるフォント(デザイン、大きさ)を指定します。また、HSPが標準で用意している各種オブジェクト(button命令chkbox命令input命令mesbox命令listbox命令combox命令)内の表示フォントとしても反映させることができます(objmode命令を別に呼び出す必要あり)。命令名の由来は、そのまま「font」から。

 font "フォント名", フォントの大きさ, フォントのスタイル

 まずは、フォントの名前。正確なフォント名を記述する必要があります。個々のPCに含まれているフォントを呼び出す形になるので、自分の環境で表示できたフォントだからといって、必ずしも他のPCで表示できるとは限りません。(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パラメータは、フォントのスタイルで、以下のとおり。複数組み合わせて指定できます。

フォントのスタイル
標準。[ HSP ]
太字。[ HSP ]
イタリック体・斜体。[ HSP ]
下線・アンダーライン。[ HSP ]
打ち消し線・取り消し線。[ HSP ]
16 アンチエイリアス。ドットのギザギザ感をなくして滑らかに表示するスムージング処理を文字に施します。
[ Windows 9x系(98/Me) ] 有効にしておいても、処理は行われません。
[ Windows NT系(2000/XP/Vista) ] 基本的に処理が行われます。条件として、(1)フォントがアンチエイリアスに対応している、(2)フォントの大きさがある程度大きめである、(3)screen命令やbgscr命令の画面モードがパレットモードではなくフルカラーモードである。

^

サンプルソース

 簡単なサンプルスクリプト。

	font "", 40, 1
	mes "Let's HSP!"

	font "HG行書体", 20
	mes "プログラミング"

 オブジェクトの場合、font命令で指定したフォントを反映させるには、objmode命令(モード2)を一度呼んでおく必要があります。

	objmode 2
	font "", , 1 + 4

	chkbox "チェック", a

^

ポイント

 font命令は、ハードディスク上(システムフォルダの「Fonts」)にあるフォントファイルを読み込んで、フォントデータを生成する処理が内部で行われます。無駄に何度も呼ぶと、動作パフォーマンスに若干影響する場合があります。

 たとえば、下のサンプルは表示される結果は全く同じですが、ソースAの方が高速です。(自分の環境だと、ソースBと比べて1/2ぐらい)

;	ソース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."

◎ オブジェクトのフォントを別のフォントやサイズに切り替えるには?
 指定したフォントがすでに反映されたオブジェクトのフォントを別のものに再度変更する(切り替える)には、sendmsg命令で一応可能です。

◎ フォント選択ダイアログを表示するには?
 ユーザーにフォント名やフォントサイズを選択させるフォント選択ダイアログは、HSPの標準命令には存在しません。Win32 APIのChooseFont関数を呼ぶ必要があります。「フォント選択ダイアログ HSP」や「ChooseFont HSP」のようなキーワードで検索エンジンを調べてください。

^

Copyright © 2005-2008 HSP情報サイト Let's HSP!. All rights reserved.