TabCtrl_SetItem でタブ全体が更新される
TabCtrl_SetItem 関数を利用すると、再描画の必要がない、タブクライアント描画領域が消去されてしまう。
この現象にすごく悩まされました。
試行錯誤しまくった結果。
TABのウィンドウスタイルに WS_CLIPSIBLINGS と WS_CHILD を追加しなくてはいけないという事が判明|・ω・)
WS_CLIPCHILDREN も関係ありそうだったんだけど、違ったようでした
以下説明
WS_CLIPSIBLINGS
関連する子ウィンドウをクリップします。つまり、1 つの子ウィンドウが描画メッセージを受け取ると、WS_CLIPSIBLINGS スタイルが適用されている場合、更新する子ウィンドウの領域から、そのウィンドウと重複しているほかの子ウィンドウをすべてクリップします。 WS_CLIPSIBLINGS が指定されていない場合に、子ウィンドウが重複していると、1 つの子ウィンドウのクライアント領域で描画するときに、隣接する子ウィンドウのクライアント領域に描画してしまう可能性があります。必ず WS_CHILD スタイルと一緒に使います。 |
WS_CLIPCHILDREN
親ウィンドウの内部で描画するときに、子ウィンドウが占める領域を除外します。 親ウィンドウを作成するときに使用します。 |
WS_CLIPSIBLINGS WS_CHILD GWL_STYLE SysTabControl32
でGoogleさんに聞くと、7件なんですが、みんなどうしてるんだろう|・ω・) と素朴な疑問だったのでした
Comments