画面にテキストw表示すう方法を説明します。
画面の表示にはデバイス今テキストを使いますが、これにはテキスト描画用のメンバ関数も用意されています。
なんと便利なクラスなんでしょうか。
では、一つづいきます。
始めになんでもよいのでテキストを表示してみます。
ダイアログベースのプロジェクトを作り、ボタンをおきます。
ボタンのハンドルに
CClientDC DC(this); // 表示用のデバイスコンテキスト
DC.TextOut(0,0,"テキストを表示してみました");
表示1
こんな風に表示できましたか?
簡単ですね。
では次にテキストを表示するまえに
DC.SetBkMode(TRANSPARENT); //背景が透けるように重ねる場合
という文を入れて同じく実行してみましょう。
表示2
今度はこんな風になりました。
表示1と比べると、文字の背景が灰色になっています。
これは灰色になっているのではなくて、背景の色が透けて見えているんですね。
キャラクタで背景を透明にするのと同じです。
こうやると、背景にビットマップがある場合でもちゃんと絵に重なって表示されます。
これを利用するとサウンドノベルが作れるかもしれません。
--------------------------------------------------------------------------------
ゲームで使うにはテキストの色、大きさ、フォントなどを変更する必要があります。
色の変更は、
DC.SetTextColor(0x00ff0000); //テキストの色 BGR の順番
というメンバ関数で行います。
色をどうやって決めるかというと、32ビットの2進数を思い出してください。
この関数の引数は、32ビットの16進数です。
それぞれ右から1バイトづつ、(つまり0〜0xFFまで)で区切られており、
右から赤、緑、青 の順番に指定することになっています。
一番明るい赤は、0x000000ff になります。
同じく
一番明るい青 0x00ff0000
一番明るい緑 0x0000ff00
になります。
色を混ぜるときにはそれぞれの成分を入れればOKです。
たとえば黄色は、赤+緑なので
0x0000ffff になります。
配分は光の3原色の配分です。
--------------------------------------------------------------------------------
フォントの大きさとフォントの変更はちょっとやり方が面倒です。
フォント用の構造体を作ってやらなければいけません。