3

アプリケーションを使用しているときに、一部のコンピューターが(まれに)ちらつき始めるという問題があります。アプリのメインフォームに奇妙なコードが見つかりました。

    protected override CreateParams CreateParams
    {
        get
        {                
            var cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;//composite window. Composite windows do not render/flickr when controls are born.  This speeds up loading.
            return cp;
        }
    }

コードは、次のように警告するオンラインソースから供給されているようです。

ただし、これは、すべてのコントロールペインティング(階層内)がWM_PAINT内で実行される環境でのみ機能するという事実に注意する必要があります。階層内のコントロールにレンダリングする他の/非同期の手段を使用するアプリケーションでは、このソリューションで問題が発生し、望ましくない動作が発生する可能性があります。

WM_PAINTとは正確には何ですか?すべてのコントロールをwin32API呼び出しでペイントする必要があるということですか、それともLoadイベントで通常発生することですか?

ちらつきに関するバグレポートを減らすためにコードが追加されたというメモがあります...彼らがこれに風呂水を入れて赤ちゃんを投げ出したのではないかと思います。

4

1 に答える 1

1

使ってみてDoubleBuffered = true;

于 2013-06-02T22:20:53.360 に答える