初めまして。
環境:WinXP(SP2)VC++2003 MFC
で作業をしていて、CTabCtrlから派生クラスを作成し、
DrawItemをオーバーライドして、タブのアイテム部分をビットマップ
で表示しようとしています。
ビットマップは表示できたんですが、タブ部分のサイズだけが変わらず困っています。
CTabCtrl::SetItemSizeでセットしてるんですが、何故か全然変わりません。
InsertItem時に何か必要なのでしょうか。
知識のある方、どうかよろしくお願いします。
取りあえず↓のように派生コントロールを無視して新しいプロジェクトで単純にやって
も
変化無いみたいです。テキストの幅に単純にされちゃいます。
CTabCtrl *tab = (CTabCtrl*)GetDlgItem(IDC_TAB1);
tab->InsertItem( 0, abcdefghijklmn );
tab->InsertItem( 1, opq );
tab->SetItemSize( CSize( 200, 20 ) );
単純にプロパティの問題なんでしょうか。
上記のコードはOnInitDlgの末尾でやっています。
SetItemSize は TCS_FIXEDWIDTH スタイルを持つタブでないと効かないんじゃなかったか
な。
>SetItemSize は TCS_FIXEDWIDTH スタイルを持つタブでないと効かないんじゃなかった
か
な。
できました!!
OwnerDrawと同時にTCS_FIXEDWIDTHも指定したらあまりにあっさり成功しました!
2日も使ってしまいましたが、自分で一度でもCreateWindowでタブを作ったことが
あったらもう少し早く解決できたかもしれないと思うと、自分の未熟さを
思い知らされます。
シャノン様ほんとうにどうもありがとうございました。