tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルVB6.0でアンチエイリアスは可能ですか?
記事No15597
投稿日: 2012/09/17(Mon) 21:34
投稿者マッキー星
よろしくお願いします。
先日、本屋でVB2010関係の書籍を眺めていました。
図形(線や円など)やテキスト文字に対して簡単にアンチエイリアスを
施すことができるとの事。
「それじゃ、慣れたVB6.0ではできるかな。」と思い、メール致しました。
おわかりでしたら、教えて下さい。

[ツリー表示へ]
タイトルRe: VB6.0でアンチエイリアスは可能ですか?
記事No15598
投稿日: 2012/09/18(Tue) 11:07
投稿者魔界の仮面弁士
使うとすれば、GDI+ でしょうかね。
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200803/08030053.txt


下記は、VB6 の Labelコントロール、Print メソッド、そして GDI+ Flat API による
テキスト出力の結果を比較したものです。
http://www.vb-user.net/junk/replySamples/2012.09.18.10.42/Form.png
http://www.vb-user.net/junk/replySamples/2012.09.18.10.42/AntiAlias.zip

このままでは違いが分かりにくいと思いますので、一部を拡大してみます。
すべてアンチエイリアス処理されていることが分かるかと思います。
http://www.vb-user.net/junk/replySamples/2012.09.18.10.42/Label.png
http://www.vb-user.net/junk/replySamples/2012.09.18.10.42/Print.png
http://www.vb-user.net/junk/replySamples/2012.09.18.10.42/GdiPlus.png

このように、最近のOS環境であれば、フォントに関しては、既定の設定で
アンチエイリアス描画が有効になっています。(正確にはClearType)

ただしそのためには、フォント側もスムージングに対応している必要があります。

また、特定のフォントサイズにおいては、アンチエイリアスが使われずに、
ビットマップフォントで描画されるようになっている点にも注意が必要です。
http://creazy.net/2007/08/windows_anti_alias.html


一方、直線や曲線に関しては、フォントとは状況が異なります。

・Circle/Line メソッドでは、アンチエイリアスはかかりません。

・Shape/Line コントロールも、画面上ではアンチエイリアスがかかりませんが、
 そのFormを PrintForm メソッドで印刷した場合は滑らかな線になります。

・VB6 でも GDI+ を使えば、直線や曲線のアンチエイリアス描画が可能です。

[ツリー表示へ]
タイトル早速の回答をありがとうございます。
記事No15599
投稿日: 2012/09/18(Tue) 21:48
投稿者マッキー星
魔界の仮面弁士さんへ

回答をありがとうございます。
早速、GDI+を使って試してみます。
「VB6.0は、もう古くて、そろそろVB2010に乗り換えなければいけない
のかなあ〜。」なんて思っていましたが、まだまだいろいろと試して
みる価値がありそうで喜んでいます。・・・・・重ね重ね感謝です!
先日、MicrosoftのVB6.0関連の記事を読んでいましたら、Win8になっても
VB6.0の動作を保障するような事が書いてありました。これまた、うれしい
限りでした。魔界の仮面弁士さん、今後ともよろしくお願いします。

[ツリー表示へ]