• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:タブをオーナードローすると、ちらついてしまいます)

タブのオーナードローでちらつきを解消する方法

このQ&Aのポイント
  • WindowsSDKを使って画面を作成している際に、タブをオーナードローしているとちらつきが発生します。WM_DRAWITEMメッセージでタブの描画を行っているが、転送処理によりちらつきが目立つため困っています。
  • WM_ERASEBKGNDでreturnすることでちらつきを解消できますが、背景色で塗りつぶされなくなります。タブが表示される箇所にウィンドウを上に置くと問題が発生します。
  • WM_DRAWITEMが頻繁に呼び出されているため、ちらつきが生じていると考えられます。解消方法をご教授いただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>DRAWITEMSTRUCTのrcItemですが、きちんと、渡されたleft,top,right,bottomに収めて描画はしております。 そうすると…チラ付きはやはりWM_ERASEBKGNDが関係していることになる…でしょうね。 WM_DRAWITEMの前に毎回WM_ERASEBKGNDが来る…ということはないかと思われますが、その辺りはどうなんでしょう? Spy++などで確認できるかと思われますが…。 再描画に1回だけ…であれば、WM_ERASEBKGNDの時にタブ以外の場所を裏画面から描画することで回避できませんかね。 タブ部分はWM_DRAWITEMで描画しますし。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

オーナードローはやったことありませんが… DRAWITEMSTRUCT構造体のrcItemメンバの範囲を超えて描き換えしていたりはしないですか?

mmo_mmo_rag
質問者

補足

ご回答有難うございます。 DRAWITEMSTRUCTのrcItemですが、きちんと、渡されたleft,top,right,bottomに収めて描画はしております。

関連するQ&A