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での対応表
TextOut | DrawText | |
---|---|---|
Win 2000 | 指定どおり | 指定どおり |
XP | 指定どおり | 2倍 |
Win 2003 | 指定どおり | 2倍 |
Vistaは、持っていないので、調べていません。(誰か、Vistaが快適に動くマシンとセットで、無料で譲って)
今日の一冊 | |
|
タグ:VisualC++
2008-05-17 22:46
nice!(0)
コメント(0)
トラックバック(0)
コメント 0