2

ここに私の質問の要約があります:カスタム コントロールで、親がその子コントロールを背景画像にペイント/bitblt する方法はありますか?

詳細: (コンパクト フレームワークで) 独自のダブル バッファリングを実行しようとしていますが、多くの問題が発生しています。かなり複雑なユーザー コントロールがあります。PanelスクロールPanel(可変サイズ)のあるビュー(固定サイズ)があります。巻物Panelには数枚のカードPanelsが入っています。カードパネルは縦に重ねて2枚DataGridsと2枚入っていLabelsます。

これが私のコントロールの視覚的な概要です

ビュー パネル
    | |
    +--> スクロール パネル
              | |
              +---> カードパネル
              | | | |
              | | +--> ラベル
              | | +--> ラベル
              | | +--> データ グリッド
              | | +--> データ グリッド
              | |
              +---> カードパネル
              | | | |
              | | +--> ラベル
              | | +--> ラベル
              | | +--> データ グリッド
              | | +--> データ グリッド
            (...)

では、問題に移ります。スクロール パネルのオン ペイントをオーバーライドし、bitblt を実行して画像を「カスタム ペインティング」として表示します。画像を保存してテストしましたが、まさに私が望んでいるものです。

問題は、データグリッドとラベルがまだ通常の描画を行っていることです。そのため、スクロールするとアーティファクトが残ります。そこで、OnPaint をオーバーライドして、グリッドとラベルに対して何もしないようにします。しかし、それを行うと、bitblt はもうグリッドをピックアップしません (しかし、奇妙なことに、まだラベルをピックアップしています)。

では、カスタム コントロールで、子コントロールを背景画像に親ペイント/bitblt する方法はありますが、子コントロールが実際にコントロールをペイントする方法はありますか?

注: 私の完全なコードに興味がある場合は、ここで見ることができます。

4

0 に答える 0