コントロールタブのアイコンについて

[戻る]
kj 2009/12/21(月) 09:48:58
最近似たような質問をしていますが、再度似たような質問になります。
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    |

仲澤@失業者 2009/12/21(月) 10:50:45
「オーナー描画」にするしかないと思います。
CTabCtrl::DrawItem()について調べてみてください。

PATIO 2009/12/21(月) 11:00:32
CTabCtrlクラスにSetPaddingという関数がありますが、
どうもこれはTAB全体への設定みたいなので無理っぽいですね。
どのタブも同じ値でよければ、これで調整出来そうなんですが。
項目名の長さが皆一定なら何とかできるかもと思いますが、
長さがまちまちなら無理ではないかと思います。

後はオーナードロウにして自分で全部描画するかですね。
自分で全て対処するのであれば、何とかなるかもしれません。
但し、オーナードロウを使うと若干動きが重くなるのは
避けられないと思います。

kj 2009/12/23(水) 08:54:02
[[解決]]
>仲澤@失業者様
>PATIO様

ご回答ありがとうございます。

オーナードロウについては知識が無いのでこれからゆっくり調べてみます。

CTabCtrl::DrawItem()で実装してみます。

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