tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルアンチエイリアス ラベル ユーザー コントロールを作成する方法
記事No2966
投稿日: 2006/01/21(Sat) 09:54
投稿者ぶらざー
[OSのVer]:WindowsXP(SP2)  [VBのVer]:VB2005(EE)
初めまして、VB2005 の無料DLに伴い勉強を始めた、ぶらざーと申します。
早速ですが、下記のMicroSoftのサンプルを試して見たのですが、変化がありません

アンチエイリアス ラベル ユーザー コントロールを作成する方法
hhttp://www.microsoft.com/japan/msdn/vbasic/migration/tips/AntiAlias/

上記は、VB.NET 2003 用で、VB2005 では動作しないのでしょうか?
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias の部分を
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit に
変更すると少しは綺麗にはなるので、やり方は間違っていないように思うのですが?
.AntiAlias では、図2 のようには表示されません。

どなたか、この初心者に教えて頂けないでしょうか? よろしくお願いします。




  

[ツリー表示へ]
タイトルRe: アンチエイリアス ラベル ユーザー コントロールを作成する方法
記事No2967
投稿日: 2006/01/21(Sat) 10:21
投稿者なおこ(・∀・)
お世話になります。

宇宙仮面さんのところに詳しく書いてありますね。
hhttp://ukamen.hp.infoseek.co.jp/Programming1/GDI/#SEC12

[ツリー表示へ]
タイトルRe^2: アンチエイリアス ラベル ユーザー コントロールを作成する方法
記事No2968
投稿日: 2006/01/21(Sat) 11:18
投稿者ぶらざー
> 宇宙仮面さんのところに詳しく書いてありますね。
> hhttp://ukamen.hp.infoseek.co.jp/Programming1/GDI/#SEC12

早速のレスありがとうございます。
上記のどの辺に書いてあるのでしょうか?
私の知りたいのは、MicroSoft のサンプルのようにアンチエイリアス処理をした
ラベルコントロールを作成する方法です。
ピクチャーコントロール等では、
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias で
処理出来る事は確認しております。

尚、VB.NET 2003 では、前記のMicroSoftのサンプルで綺麗に表示されますので
同様に、VB2005 でできないのかを知りたいのですが、よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: アンチエイリアス ラベル ユーザー コントロールを作成する方法
記事No2969
投稿日: 2006/01/22(Sun) 00:22
投稿者なおこ(・∀・)
お世話になります。

> 私の知りたいのは、MicroSoft のサンプルのようにアンチエイリアス処理をした
> ラベルコントロールを作成する方法です。
> ピクチャーコントロール等では、
> e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias で
> 処理出来る事は確認しております。
>
> 尚、VB.NET 2003 では、前記のMicroSoftのサンプルで綺麗に表示されますので
> 同様に、VB2005 でできないのかを知りたいのですが、よろしくお願いします。

すみません。完全に読み違えていました。
2005 での方法ですね。ごめんなさい。

私も早速 VB2005 Express Edition を落として、
hhttp://www.microsoft.com/japan/msdn/vbasic/migration/tips/AntiAlias/
と、全く同じ様にコーディングしてみましたが、
文字が普通のラベルと変わらないですね...。

OnPaint にブレークポイントを 付けて追ってみましたが 通ってるし、
e.Graphics.TextRenderingHint の値は変わっていますね。
デバッグ→例外で Common Language Runtime Exceptions にチェックを付けましたが、
何も投げられず。

IL を見てみようとしましたが、VB2005 でつくったほうは開けなかったです。
(当然なのか...?)

結局、原因がわかりませんでした。引き続き調査しようと思います。

[ツリー表示へ]
タイトルRe^3: アンチエイリアス ラベル ユーザー コントロールを作成する方法
記事No2970
投稿日: 2006/01/22(Sun) 11:38
投稿者花ちゃん
回答ではありませんが!。

多分、グラフィック関係が変更された影響じゃないでしょうか?
私も、VB.NET 2003 のピクチャーボックスで GIF アニメーション していたのが
VB2005 では、しなくなったり、動作が変になったり、逆に 32ビットカラーの
アイコンが正常に表示されるようになったりと、グラフィック関係での動作の
違いを感じており、色々調べたりはしているのですが、参考資料が見当たらず
そのまま、解らずじまいでおります。

[ツリー表示へ]
タイトルRe: アンチエイリアス ラベル ユーザー コントロールを作成する方法
記事No2988
投稿日: 2006/01/26(Thu) 12:22
投稿者ふもふも
これはこれで正しく動作しています。
デザインモード時においては、アンチエイリアスをかけてない状態で表示されていますが、
実行すればアンチエイリアスがかかった状態で表示します。
サンプルの上のラベルのほうがきれいだと思われますが、
Windowsはデフォルトで、「ClearType」という方法でアンチエイリアスをかけているのです。
下のラベルはGDI+でアンチエイリアスをかけているので違いがあります。
システムでのアンチエイリアスを解除後、デザイナ上での上と下のラベルは同じように
アンチエイリアスがかかっていない状態で表示されると思います。
この状態で実行してみれば、下のラベルにアンチエイリアスがかかっていることがわかると思います。
実行してみればわかるとおり、GDI+でのアンチエイリアスはそれほどきれいではありませんw。

システムでのアンチエイリアスを解除する方法は、デスクトップで右クリックでプロパティを
選択ます。「画面のプロパティ」という画面(解像度や色数、スクリーンセーバーなどを変更する
画面なのでよく使用していると思います)を表示します。
ここで、上の「デザイン」というタブをクリックし、下のほうにある「効果」というボタンを
クリックします。「効果」という子画面が表示されますので、
「次の方法でスクリーン フォントの縁を滑らかにする」という項目のチェックをはずせば
解除されます。

[ツリー表示へ]
タイトルRe^2: アンチエイリアス ラベル ユーザー コントロールを作成する方法
記事No2989
投稿日: 2006/01/26(Thu) 13:18
投稿者ぶらざー
回答ありがとうございます。
> 「次の方法でスクリーン フォントの縁を滑らかにする」という項目のチェックをはずせば
> 解除されます。
チェックを外した状態でテストしております

> これはこれで正しく動作しています。
> デザインモード時においては、アンチエイリアスをかけてない状態で表示されていますが、
> 実行すればアンチエイリアスがかかった状態で表示します。

この辺の事は確認しております。(但し、VB.NET 2003の場合。 デザイン時でも確認できます)

私の知りたいのは、 VB.NET 2003 と VB2005 で実行した場合の動作の違いです。
VB.NET 2003 では、下記コードで綺麗に表示されるが、VB2005 では変化が無い事です。
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias

但し、VB2005 では、System.Drawing.Text.TextRenderingHint.ClearTypeGridFit なら有効に
なっております。

又、.NET 2003 から VB2005 アップグレードすると どこかでコードで変換
しているようなので、その方法が知りたいのです。

[ツリー表示へ]