SSブログ

SetTextCharacterExtraとDrawTextとWindows XP [プログラミング]

VisualC++で画面に文字を出力する時、SetTextCharacterExtra() API を使う事で文字と文字の隙間(文字間隔)を指定することが出来ます。

CDC* pDC;
...
pDC->SetTextCharacterExtra(10);
pDC->TextOut(0, 0, _T("あいう"));

とすると、「あ」と「い」、「い」と「う」の間に10ずつ隙間が開きます。

さてさてさて。

VisualC++で画面に文字を出力するには、TextOut() APIの他にもう1つ DrawText() APIがあります。
そして、DrawText()を使うと、文字間隔はSetTextCharacterExtra()で指定したものの2倍になります。

CDC* pDC;
...
pDC->SetTextCharacterExtra(10);
pDC->DrawText(_T("あいう"), CRect(0, 0, 10, 10), DT_SINGLELINE | DT_NOCLIP);

とすると、「あ」と「い」、「い」と「う」の間に20ずつ隙間が開きます。
それも Windows XPの場合だけ。
Windows 2000 だと、隙間は10です。

なにそれ。

SetTextCharacterExtra()で指定した値と実際に出力される隙間。
OSと描画APIでの対応表

TextOutDrawText
Win 2000指定どおり指定どおり
XP指定どおり2倍
Win 2003指定どおり2倍

Vistaは、持っていないので、調べていません。(誰か、Vistaが快適に動くマシンとセットで、無料で譲って)

[新幹線] 今日の一冊
ちょっと大人の誘導尋問―恋愛関係、人間関係、仕事関係を知る心理常識

ちょっと大人の誘導尋問―

  • 作者: 渋谷 昌三
  • 出版社/メーカー: 青春出版社
  • 発売日: 2000/05
  • メディア: 単行本

タグ:VisualC++
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。