最近似たような質問をしていますが、再度似たような質問になります。
VC++ 6.0のMFCで作成しています。
Tab Controlについてですが、InsertItemでタブパネルを追加するときに、
タブパネルのアイコンが左寄せされています。
これを中央表示したいのですが、実装方法をどなたかご教授お願いします。
コードは以下となります。
m_XcTab.InsertItem(0, _T( 項目1 ),0 /*アイコン0番*/ ); //項目1パネル追加
m_XcTab.InsertItem(1, _T( 項目2 ),0 /*アイコン0番*/ ); //項目2パネル追加
タブパネル現状(左寄せ)
☆:アイコン
|☆項目1 |☆項目2 |
タブパネル理想(中央)
| ☆ 項目1 | ☆ 項目2 |
「オーナー描画」にするしかないと思います。
CTabCtrl::DrawItem()について調べてみてください。
CTabCtrlクラスにSetPaddingという関数がありますが、
どうもこれはTAB全体への設定みたいなので無理っぽいですね。
どのタブも同じ値でよければ、これで調整出来そうなんですが。
項目名の長さが皆一定なら何とかできるかもと思いますが、
長さがまちまちなら無理ではないかと思います。
後はオーナードロウにして自分で全部描画するかですね。
自分で全て対処するのであれば、何とかなるかもしれません。
但し、オーナードロウを使うと若干動きが重くなるのは
避けられないと思います。
>仲澤@失業者様
>PATIO様
ご回答ありがとうございます。
オーナードロウについては知識が無いのでこれからゆっくり調べてみます。
CTabCtrl::DrawItem()で実装してみます。