![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめまして。
質問させてください。
CImageを使用して
OnPaint( )でBMP画像を描画するアプリを作成しております。
仕様といたしまして
ダイアログのDC部にBMPを全体に描画して
RGB( 255, 255, 255 )を透明化(背景が完全に見える)する
ようにしております。
OnInitDialog( )で透過、透明処理をしています。
OnPaint( )で
PaintDC PDC;
//背景を透過
PDC.SetBkMode( TRANSPARENT );
PDC.SetTextColor( RGB( 255, 0, 0 ) );
PDC.SetBkColor( RGB( 255, 255, 255 ) );
PDC.TextOutW( 100, 100, _T( "TEST" ) );
上記のように実装して、EXEで実行して確認しますと
Windows2000の場合、正常に文字(TEST)が赤字で描画されるのですが
WindowsXPの場合、赤字で描画されるのですが文字の周りがぼやけてしまいます。
イメージとしては文字描画部分が
2000の場合、BMP表示
XPの場合、JPG表示
のようになります。
これは仕様なのでしょうか?
それとも何かコードレベルで解決できるのでしょうか?
お詳しい方がおりましたらご教授お願いいたします。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Xpでは文字にアンチエイリアス
(文字の縁を滑らかにする技法)
がかかる為です。
「画面のプロパティ」→「デザイン」タブにある「効果」の
「次の方法でスクリーン フォントの縁を滑らかにする」のチェックをはずせば
Windows2000と同じにようにアンチエイリアスがかからなくなります。
(つまりTextOutA/W APIはこの設定に影響を受けます。MFCのTextOutも内部でこのAPIを呼んでいるだけです。)
私は使ったことが無いので詳細はわかりませんが
コード上で実現する為には
GetGlyphOutlineを使う事でシステムの設定に関係なく
アンチエイリアスを無効にしたフォントの出力が可能なようです。
「GetGlyphOutline アンチエイリアス無し」で検索すると、
それについて解説しているページが見つかります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- フリーソフト GIMPの使い方 1 2022/07/11 13:52
- CAD・DTP 「機能ブロック図」の描画用フリーソフトを教えてください 1 2022/09/23 16:12
- HTML・CSS 角丸画像の背景色を透明にしたいです 1 2023/06/23 23:15
- マンガ・コミック 漫画の練習方について 1 2022/06/06 19:26
- 画像編集・動画編集・音楽編集 画質を落とさず切り取って透過したいです 2 2022/06/08 12:28
- Photoshop(フォトショップ) 【至急】 ウェブサイトやアプリとかでよく見かける、添付画像のように背景にあるものをぼかしつつ透過する 2 2023/07/17 10:57
- その他(学校・勉強) 絵の描くのが下手な人、字を書くのが下手な人は記憶力が悪い? 7 2022/07/18 07:32
- レトロゲーム ファミコンのインベーダの質問その3 背景にインベーダーを描画したとしても、なぜ動けるのか? 3 2022/07/08 16:58
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MFCでOnPaintのタイミング
-
Windowのちらつき防止
-
word
-
InvalidateRectの使い方について
-
ダイアログベースの再描画について
-
TextBoxに文字を書いても表示さ...
-
FPS リフレッシュレートとフレ...
-
GDI+について
-
VB.NETでPictureBoxへの描画に...
-
[VB.net] DataGridViewの列ヘッ...
-
OneNote 2010 文字と描画がずれる
-
C# ラバーバンドの描画を快適に...
-
VB.netでのライン描画方法がわ...
-
Visual Studio.Netで株価チャー...
-
NVIDIAのシェーダーキャッシュ
-
フラッシュで正六角形を作る方法
-
クライアント領域の保存
-
逐次的なグラフ表示の方法
-
矢印を描画するには
-
gnuplotのフリーズについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PCで「使用可能な場合はグラフ...
-
[VB.net] DataGridViewの列ヘッ...
-
UpdateData( FALSE); による文...
-
NVIDIAのシェーダーキャッシュ
-
VB6,リストボックスの特定行の...
-
TextBoxに文字を書いても表示さ...
-
word
-
MFCでOnPaintのタイミング
-
エクセルでガンチャートを作成...
-
MFCのタイマーのつかい方を教え...
-
InvalidateRectの使い方について
-
VC++プログラムをつかったBMP画...
-
CScrollViewの使用方法について
-
VB.netでのライン描画方法がわ...
-
CStaticコントロールの静的イメ...
-
Labelの文字をスクロールする際...
-
Form1 Load で実行されない。
-
VBAにGDI+を参照させる方法
-
C++にて、塗りつぶされた円を描...
-
GetGlyphOutline() ご利用経験...
おすすめ情報