MFCのCTabCtrlでタブアイテムのサイズを変えたい

[戻る]
tomtom 2008/07/05(土) 03:48:12
初めまして。
環境:WinXP(SP2)VC++2003 MFC
で作業をしていて、CTabCtrlから派生クラスを作成し、
DrawItemをオーバーライドして、タブのアイテム部分をビットマップ
で表示しようとしています。
 
ビットマップは表示できたんですが、タブ部分のサイズだけが変わらず困っています。
CTabCtrl::SetItemSizeでセットしてるんですが、何故か全然変わりません。

InsertItem時に何か必要なのでしょうか。
知識のある方、どうかよろしくお願いします。

tomtom 2008/07/07(月) 16:51:14
取りあえず↓のように派生コントロールを無視して新しいプロジェクトで単純にやって
も
変化無いみたいです。テキストの幅に単純にされちゃいます。
 
CTabCtrl *tab = (CTabCtrl*)GetDlgItem(IDC_TAB1);
tab->InsertItem( 0, "abcdefghijklmn" );
tab->InsertItem( 1, "opq" );    
tab->SetItemSize( CSize( 200, 20 ) );
 
単純にプロパティの問題なんでしょうか。
上記のコードはOnInitDlgの末尾でやっています。

シャノン 2008/07/07(月) 17:13:11
SetItemSize は TCS_FIXEDWIDTH スタイルを持つタブでないと効かないんじゃなかったか
な。

tomtom 2008/07/08(火) 01:15:15
[[解決]]
>SetItemSize は TCS_FIXEDWIDTH スタイルを持つタブでないと効かないんじゃなかった
か
な。
 
 
できました!!
OwnerDrawと同時にTCS_FIXEDWIDTHも指定したらあまりにあっさり成功しました!
2日も使ってしまいましたが、自分で一度でもCreateWindowでタブを作ったことが
あったらもう少し早く解決できたかもしれないと思うと、自分の未熟さを
思い知らされます。
 
シャノン様ほんとうにどうもありがとうございました。

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