まず、恒例のwikipediaのご紹介、
禁則処理文字チェック
http://ja.wikipedia.org/wiki/%E7%A6%81% ... 6%E7%90%86
プロポーショナルフォント・等幅フォント
http://ja.wikipedia.org/wiki/%E3%83%97% ... 3%E3%83%88
つまり、禁則処理は句読点(、。)や閉じ括弧(」』)】などが文頭に来ない様にしてやる処理です。
例えば、 よりも って表示されたほうが見やすいですよねって事です。
禁則処理は、ウィンドウ幅に対して少し余裕を持たせて改行させることで、禁則処理ができる余裕を空けておきます。
で、禁則文字が来たらウィンドウのギリッギリまで表示させてやります。
と言う事で文字列表示で行の最後に禁則文字が来るかどうか判断すれば良いだけって事ですね。
あとは実際のプログラムで説明する予定です。
もうひとつのプロポーショナルフォントですが、簡単RPGではメッセージはプロポーショナルで、メニューは等幅フォントと使い分けを行う予定です(すでに組んでありますが)。
メニューは揃っていた方が見やすいのと文字列はプロポーショナルの方が美しく見えて読みやすいからってのが私なりの理由です。
今回のサンプルプログラムはDXライブラリ(ウィンドウ・アプリ)です。
等幅フォントとプロポーショナルの違いを同じものをフォントを変えて表示しています。
●
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int Cr ;
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// 描画する文字列の文字セットを変更します
ChangeFont( "MS ゴシック" ) ;
// 文字列の描画
DrawString( 100 , 240 + 12 , "Hello C World!" , GetColor(255,255,255) );
DrawString( 260 , 240 + 12 , "同じ文字列でも幅が変わります。等幅" , GetColor(255,255,255) );
// 描画する文字列の文字セットを変更します
ChangeFont( "MS Pゴシック" ) ;
// 文字列の描画
DrawString( 100 , 240 - 12 , "Hello C World!" , GetColor(255,255,255) );
DrawString( 260 , 240 - 12 , "同じ文字列でも幅が変わります。プロポーショナル" , GetColor(255,255,255) );
WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
次回は、ウィンドウシステムのプログラム解説に入ります。