CTabCtrlのマルチラインで選択したタブの列が最下段にこないようにするには

[戻る]
ひろ 2006/10/19(木) 19:59:00
環境は
OS:WinXP
VC++.NET
です。

CTabCtrlでTCS_MULTILINEにし、複数行になった場合、
選択したタブの列が自動的に最下段に並び変わってしまいます。

位置がころころ変わると、わかりにくくなるような気がするので、
列の並びは変えたくないと考えています。

TCS_BUTTONSにすれば列の自動並び替えは起こらなくなるのですが、
やはりタブのイメージのほうがいいです。

方法をご存知の方がおりましたらご教示ください。

よろしくお願いします。

2006/10/20(金) 14:31:44
回答ではありません。方法もしりません。お役に立てなくてすみません。
単に不思議におもったので書かせていただきました。

カレントを最下段にしない場合、カレントより下段のタブをスマートに見せる
方法がイメージできないんだけど、どうやればわかりやすいと思いますか?。

PATIO 2006/10/20(金) 15:47:54
私も 「え」さんに同意見です。

もしも選択されたタブが上段にあったら実際のコントロールを配置している部分と
タブの繋ぎはどう表示するんでしょう?
上段にあるタブと強引に繋いでしまうと繋ぐための描画の下に未選択のタブが
隠れてしまいます。
視覚的な方向から考えても選択したタブを上段に持っていく事は無理だと思います。

ひろ 2006/10/20(金) 21:46:23
えさん、PATIOさん、
ご回答ありがとうございました。

繋ぎの部分は必要ないので、消してしまおうと考えていました。
(消すというよりOnPaint()をオーバーライドしてタブ部分のみを独自描画)

yoh2 [E-Mail] 2006/10/20(金) 23:06:30
つまり、ハイライトさえしていればよい、と。
タブの形をしたボタンを持ったTCS_BUTTONSとか?

下になる部分を半透明にするというのもアリかと考えてみましたが、下になった部分は見えても
クリックできなそうなイメージになっちゃいますね。

# 実現性は考慮せずに発言しています。

ひろ 2006/10/21(土) 00:56:57
[[解決]]
yoh2さん、
ご回答ありがとうございます。

> タブの形をしたボタンを持ったTCS_BUTTONSとか?

これも考えたのですが、TCS_BUTTONSにすると
タブとタブの間に間隔(クリックできない隙間)ができてしまい、
それを無視して強引に描画したとしても問題があるかなと思っています。

いろいろとご意見をいただきましたが、
そもそもCTabCtrlを理想の形にカスタマイズするのは無理そうだということで、
自分で独自のコントロールを作成することにします。

ありがとうございました。

古いスレッドには追加発言できません。