« BDS2006 Trial | メイン | Emacs のウインドウ下の ATOK 表示を消したい(Vine Linux 3.2) »

API を使って縦書きなどのフォントを指定する

API を使って縦書きなどのフォントを指定する を参考に BCB6 でやってみたけど、文字化けした。

GetObject() を使えばうまく行きました。以下がそのコード。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TLogFont lbl;
  GetObject(Canvas->Font->Handle, sizeof(TLogFont), &lbl);
  // 日本語の場合、幅:高さ=1:2にする
  lbl.lfWidth = 10;
  lbl.lfHeight = 20;
  // 文字の太さ(0~1000)
  // 「標準」の太さは400、「太字」の太さは700
  lbl.lfWeight = 400;
  // 半時計回りの角度(単位は1/10度)
  lbl.lfEscapement = 2700;
  // 下線なし(デフォルトでは「あり」)
  lbl.lfUnderline = false;
  // 打ち消し線なし(デフォルトでは「あり」)
  lbl.lfStrikeOut = false;
  // 斜体無効(デフォルトでは有効)
  lbl.lfItalic = false;
  // 縦書き用の「@」がつくフォントを使用する
  strcpy(lbl.lfFaceName, "@MS ゴシック");

  // フォントを作成
  Canvas->Font->Handle = CreateFontIndirect(&lbl);
  // 背景を透明に
  Canvas->Brush->Style = bsClear;
  // 文字列を描画
  Canvas->TextOut(300, 300, "縦書き文字");
}

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/2

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2006年03月06日 15:38に投稿されたエントリーのページです。

ひとつ前の投稿は「BDS2006 Trial」です。

次の投稿は「Emacs のウインドウ下の ATOK 表示を消したい(Vine Linux 3.2)」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35