2

ひどいちらつきのある多くのカスタムコントロールを持つフォームがあります.次のコードを見つけました(解決策を探しているときにstackoverflowで、Hans Passantによって投稿されたユーザーコントロール またはWinformsダブルバッファリングでちらつきを修正する方法)。ちらつき

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
        return cp;
    }
}

ただし、スクロールバーの位置バーをクリックすると、マウスボタンを離すまで位置バーは固定されたままになります。

ドラッグ中にスクロール位置バーを更新し、コントロールがちらつかないようにする方法はありますか?

どうもありがとう

4

1 に答える 1

1

スムーズ スクロール .net フォーム

CharlesW のおかげで、ここに回答が見つかりました

private const int WM_HSCROLL = 0x114;
private const int WM_VSCROLL = 0x115;

protected override void WndProc (ref Message m)
{
    if ((m.Msg == WM_HSCROLL || m.Msg == WM_VSCROLL)
    && (((int)m.WParam & 0xFFFF) == 5))
    {
        // Change SB_THUMBTRACK to SB_THUMBPOSITION
        m.WParam = (IntPtr)(((int)m.WParam & ~0xFFFF) | 4);
    }
base.WndProc (ref m);
}
于 2012-12-19T20:05:52.333 に答える