テキストを出力するときは、通常はテキストボックスかラベルコントロールを使う。
しかし、ピクチャーボックスなどに直接的に描画すれば、コーディング量は増えるものの
より自由な書式でテキストを出力できる。
そのときに重要なのは再描画処理である。
Visual Basicの標準のコントロールを使っているときは、
Visual Basicが勝手にやってくれるが自分でテキストやグラフィックを
デバイスコンテキストに出力すると、自分で処理しなければならない。
Visual C++プログラマにとっては普通のことであるが、Visual Basicのプログラマは
あまり再描画の機会はないが、慣れれば簡単である。
再描画については当サイトの別館の今月の特集
「2002/8月号 再描画処理をVisual Basicでもやってみよう」を参照。
バックグラウンドカラー・・・・・デバイスコンテキストの背景色
TextOut()関数などで文字を描画したときの背景色など。
デフォルトは白だが、色を変更するにはSetBkColor()関数を使う。
また、背景を透過色にする場合は、SetBkMode()関数を使う。
TextOut()関数のサンプルとしてダウンロードできる。
日本語の描画・・・・・・・・・・TextOut()関数などのテキストを描画する関数は
基本的には英語を基準に作られている。
そのため、日本語を描画するには次のようにする必要がある。
temp = "日本語の描画" cch = LenB(StrConv(temp, vbFromUnicode)) |
| 関数名 | 機能 | Sample |
| テキスト描画 | ||
| DrawStatusText | ステータスバースタイルでテキストを表示する | なし |
| DrawText | 指定の矩形領域内にテキストを出力する | なし |
| DrawTextEx | 指定の矩形領域内に書式を指定してテキストを出力する | なし |
| ExtTextOut | 指定の矩形の範囲内でテキストを表示する | なし |
| GetTabbedTextExtent | タブ文字を含むテキストの行の幅と高さを取得する | なし |
| GetTextAlign | テキストアライメントの設定を取得する | なし |
| GetTextCharacterExtra | デバイスコンテキストに定義されている文字間のエキストラペース量を取得する | なし |
| GetTextColor | 現在のテキストカラーを取得する | なし |
| GetTextExtentExPoint | 指定の幅内に収まるテキストのバイト数、文字間隔を取得する | なし |
| GetTextExtentPoint32 | テキストの幅と高さを取得する | なし |
| GrayString | テキストをグレー表示で出力する | なし |
| SetTextAlign | デバイスコンテキスト上のテキストの表示位置を指定する | なし |
| SetTextCharacterExtra | 文字間隔を設定する | なし |
| SetTextColor | デバイスコンテキストの文字色を変更する | あり |
| SetTextJustification | テキストを出力時に均等寄せする | なし |
| TabbedTextOut | タブ文字を含むテキストを出力する | なし |
| TextOut | テキストを指定の位置に出力する | あり |