古事連記帖

趣味のこと、技術的なこと、適当につらつら書きます。

Version1.09をリリースしました。

新着受信時のサウンド再生で、「サウンドを指定する」を指定しながらも
再生するファイルを指定しなかった時は既定のサウンドで再生するようにしました。


ついでにちょっと試験的なことを。
メッセージ一覧の表示にアンチエイリアスをやってみました。
VL P ゴシックでの表示例。

アンチエイリアスじゃなくてClearTypeのとき

アンチエイリアスのとき
しかしこのアンチエイリアス処理、Windowsの仕様なのかよくわからんことになってます。
MS UI Gothic など一部(確認すると結構多い)のフォントだと、

プレビューではアンチエイリアスが掛かっていないように見えますが、

件名の方は掛かってるのに「2 通の未読メッセージ」だけ掛かってなかったり。


プレビューでチェックを外したりつけたりして、アンチエイリアスが掛かってるなって思ったフォントだと、メッセージ一覧でも綺麗にでますのでお試しを。


ラベルとリンクラベルを継承して、OnPaint内でTextRanderingHintで処理させてるんですが、なんでこんなことになるんでしょうねえ…orz 誰かヘルプみー

using System.Text;
using System.Windows.Forms;
using System.Drawing.Text;
using System.Drawing.Drawing2D;
using System.ComponentModel;

namespace GmailChecker.Libraries
{
    /// <summary>
    /// アンチエイリアス処理がされる LinkLabel です。
    /// </summary>
    public class AntiAliasLinkLabel : LinkLabel
    {
        TextRenderingHint _antialias;
        PixelOffsetMode _quality;

        /// <summary>
        /// アンチエイリアス処理の方法を取得または設定します。
        /// </summary>
        public TextRenderingHint AntiAlias
        {
            get
            {
                return _antialias;
            }
            set
            {
                _antialias = value;
            }
        }

        /// <summary>
        /// アンチエイリアス処理の質を取得または設定します。
        /// </summary>
        public PixelOffsetMode AntiAliasQuality
        {
            get
            {
                return _quality;
            }
            set
            {
                _quality = value;
            }
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.TextRenderingHint = _antialias;
            e.Graphics.PixelOffsetMode = _quality;
            base.OnPaint(e);
        }
    }
}