テキストにアンチエイリアスをかけるには


zun  2005-09-09 20:33:07  No: 92168

メモリ上にテキストを描画してそれをフォーム上にコピーしようと思い、以下のコードを実行したのですが、フォーム上に表示されたテキストにアンチエイリアスがかかりません。
いろいろ試したところCreateCompatibleBitmap時のサイズを指定するためにGetTextExtentPoint32のSIZE構造体を使用しているのですが、それを使わないで数値を直接指定してCreateCompatibleBitmapするとなぜかアンチエイリアスがかかります。
何かご存知の方がおられればご教授願いたいと思います。
よろしくお願い致します。

hMemDC = CreateCompatibleDC(Form1.hdc)
SetBkMode hMemDC, OPAQUE
SetBkColor hMemDC, RGB(255, 0, 0)
SetTextColor hMemDC, RGB(255, 255, 0)
hFont = CreateFont(48, 0, 0, 0, _
                   FW_NORMAL, 0, 0, 0, _
                   DEFAULT_CHARSET, _
                   OUT_DEFAULT_PRECIS, _
                   CLIP_DEFAULT_PRECIS, _
                   ANTIALIASED_QUALITY, _
                   DEFAULT_PITCH Or FF_DONTCARE, _
                   "MS Pゴシック")
SelectObject hMemDC, hFont
GetTextExtentPoint32 hMemDC, txt, LenB(txt), udtSIZE
hBitmap = CreateCompatibleBitmap(Form1.hdc, udtSIZE.cz, udtSIZE.cy)
SelectObject hMemDC, hBitmap
TextOut hMemDC, 0, 0, txt, LenB(StrConv(txt, vbFromUnicode))
BitBlt Form1.hdc, 0, 0, udtSIZE.cx, udtSIZE.cy, hMemDC, 0, 0, SRCCOPY


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加