最終更新 2003 09/22
サンプルのダウンロード → API_TextOut.lzh(36k)
全ソースコード
TextOut 関数
対応しているバージョン
95, 98, Me, NT3.1以降, 2000, XP
使用するヘッダとライブラリ
wingdi.h
gdi32.lib
|
ウィンドウに文字を表示させるには TextOut 関数を使います。
TextOut( HDC, X, Y, "文字", 文字のバイト数 );
HDC は HDC hDC = GetDC( hWnd ); というように、GetDC() 関数で
取得します。
取得した HDC は、必要がなくなったら必ず ReleaseDC() 関数で
解放しないといけません。
X, Y は、文字を表示する位置です。
クライアント領域が対象になります。
なので、0, 0 と指定しても、ウィンドウのタイトルバーの位置に
文字が表示されるわけではなくて、クライアント領域の左上隅に
文字が表示されます。
"文字" にはサンプルのように char 型のポインタを使うか
char text[256]; というように char 型の配列を使うパターンの
2種類あります。
char* p_text = "文字だよ〜。";
char text[] = { "文字だよ〜。" };
上の2つはどちらも扱い方は同じです。
この辺の細かい違いとか扱い方は、自分でプログラムを沢山組んで
覚えるしかないですねぇ・・・。
"文字" に変数を使わない場合
TextOut( hDC, 0, 0, "文字表示サンプル", 16 );
こんなふうに自分で文字のバイト数を数えて指定してやらないと
いけないので少し面倒です。
"文字表示サンプル" は文字数は8文字ですが、全角文字は
2バイト使うので、バイト数は倍の16バイトになります。
それで16と指定してるという事になります。
文字列の最後につく \0 は数える必要はありません。
TextOut( hDC, 0, 0, "文字表示サンプル", 16 ); みたいに
直接文字と文字数を指定する方法は応用が利かないので
ちょっといただけないですね。
char text[] = { "文字表示サンプル" };
TextOut( hDC, 0, 0, text, strlen( text ) );
こうやるほうが楽ですし、間違いもありません。
さらに文字ってみる
変数の値を表示させる
文字の背景色を変える
文字の色を変える
文字の背景を透明にする
|