WTL8.1を使用して開発されたWindowsXPSP3用のVS2008C++アプリケーションがあります。私のアプリケーションには、アプリケーションの境界線のサイズが変更されたときにちらつくタブコントロールが含まれています。
私のウィンドウ階層は次のようになります。
CFrameWindowImpl CMainFrm
|-CSplitterWindow Splitter
|-CTabView Configuration Tabs
| |-CDialogImpl Configuration View 1
| |-CDialogImpl Configuration View 2
| |-CDialogImpl Configuration View 3
|-CDialogImpl Control View
私が試している解決策は、CFrameWindowImpl
派生クラスにWS_EX_COMPOSITED
スタイルを使用させ、その下のすべてのウィンドウにスタイルを使用させることWS_EX_TRANSPARENT
です。残念ながら、これにより、タブコントロールボタンが空の黒いバーとして表示され、構成ビューのコントロールがまったく表示されなくなります。
WS_EX_COMPOSITED
とWS_EX_TRANSPARENT
スタイルを削除すると、フォームは正しく表示されますが、CTabView
サイズを変更すると、その下のすべてがひどくちらつきます。
ちらつきをなくし、コントロールを適切に描画するには、何を変更する必要がありますか?
ありがとう、PaulH
編集:動作しました。WS_EX_TRANSPARENT
MarkRansomの提案に従ってすべてのスタイルを削除しました。(内に含まれる)のみにWS_EX_COMPOSITED
スタイルを配置します。他のコントロールは、必要に応じてを介してダブルバッファリングを取得します。CTabCtrl
CTabView
WTL::CDoubleBufferImpl<>