[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 のようには表示されません。どなたか、この初心者に教えて頂けないでしょうか? よろしくお願いします。
お世話になります。宇宙仮面さんのところに詳しく書いてありますね。hhttp://ukamen.hp.infoseek.co.jp/Programming1/GDI/#SEC12
> 宇宙仮面さんのところに詳しく書いてありますね。> hhttp://ukamen.hp.infoseek.co.jp/Programming1/GDI/#SEC12早速のレスありがとうございます。上記のどの辺に書いてあるのでしょうか?私の知りたいのは、MicroSoft のサンプルのようにアンチエイリアス処理をしたラベルコントロールを作成する方法です。ピクチャーコントロール等では、e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias で処理出来る事は確認しております。尚、VB.NET 2003 では、前記のMicroSoftのサンプルで綺麗に表示されますので同様に、VB2005 でできないのかを知りたいのですが、よろしくお願いします。
お世話になります。> 私の知りたいのは、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 でつくったほうは開けなかったです。(当然なのか...?)結局、原因がわかりませんでした。引き続き調査しようと思います。
回答ではありませんが!。多分、グラフィック関係が変更された影響じゃないでしょうか?私も、VB.NET 2003 のピクチャーボックスで GIF アニメーション していたのがVB2005 では、しなくなったり、動作が変になったり、逆に 32ビットカラーのアイコンが正常に表示されるようになったりと、グラフィック関係での動作の違いを感じており、色々調べたりはしているのですが、参考資料が見当たらずそのまま、解らずじまいでおります。
これはこれで正しく動作しています。デザインモード時においては、アンチエイリアスをかけてない状態で表示されていますが、実行すればアンチエイリアスがかかった状態で表示します。サンプルの上のラベルのほうがきれいだと思われますが、Windowsはデフォルトで、「ClearType」という方法でアンチエイリアスをかけているのです。下のラベルはGDI+でアンチエイリアスをかけているので違いがあります。システムでのアンチエイリアスを解除後、デザイナ上での上と下のラベルは同じようにアンチエイリアスがかかっていない状態で表示されると思います。この状態で実行してみれば、下のラベルにアンチエイリアスがかかっていることがわかると思います。実行してみればわかるとおり、GDI+でのアンチエイリアスはそれほどきれいではありませんw。システムでのアンチエイリアスを解除する方法は、デスクトップで右クリックでプロパティを選択ます。「画面のプロパティ」という画面(解像度や色数、スクリーンセーバーなどを変更する画面なのでよく使用していると思います)を表示します。ここで、上の「デザイン」というタブをクリックし、下のほうにある「効果」というボタンをクリックします。「効果」という子画面が表示されますので、「次の方法でスクリーン フォントの縁を滑らかにする」という項目のチェックをはずせば解除されます。
回答ありがとうございます。> 「次の方法でスクリーン フォントの縁を滑らかにする」という項目のチェックをはずせば> 解除されます。チェックを外した状態でテストしております> これはこれで正しく動作しています。> デザインモード時においては、アンチエイリアスをかけてない状態で表示されていますが、> 実行すればアンチエイリアスがかかった状態で表示します。この辺の事は確認しております。(但し、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 アップグレードすると どこかでコードで変換しているようなので、その方法が知りたいのです。