タブのサイズを変更したい。
タブに閉じ十字を追加しましたが、タブのテキストとかなり競合しています。
これまでのところ、次のことがわかりました。
GetItemRect(int i, RECT* rc)
私にrectを与えます。私が本当に欲しいのは SetItemRect です。SetItem
アイテムにはそのサイズが含まれていないため、使用できません。それは私が与える内容に基づいて計算されます。- 文字列の最後にスペース char を追加することもできますが、それは自然の秩序に反するだけです。CStrings でピクセルを微調整しません。
SetSize
タブのサイズを設定することになっています(すべてのタブ?)。しかし、再描画をトリガーしない場所を見つけることができず、WM_PAINT ケースで配置すると無限ループが発生します。
これは、タブのコンテンツをカスタム描画する場所ですが、ここでサイズを変更することはできません。
LRESULT CSkinnedTabCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_PAINT: {
...
CPaintDC dc(this);
INT nCount = GetItemCount();
for (INT i = 0; i < nCount; i++) {
CRect rc;
GetItemRect(i, rc);
DrawItem(dc, i, rc);
}
return TRUE;
}
タブのサイズはどこで、どのように設定しますか?