Top > コンポーネント > tabsheet フォン変更

これは以下の投稿に対する返信です。
名前
メール   (省略可)
題名   (質問の場合は、質問内容を表す具体的な名前)
クイズ この掲示板が対象としているプログラミング言語の名前は?
内容
(タグは使えません)
名前とメールをブラウザに保存
  

Re: tabsheet フォン変更   by こなみ 2010年2月2日 21:50

 
できました。
サンプルコードから背景の色も変更できました。
wwwさん、ありがとうございました。


Re: tabsheet フォン変更   by www 2010年2月1日 19:07

 
タブの項目を自前で書いてやれば出来ると思います

ページコントロールの OwnerDraw プロパティを Trueにして
  PageControl1->OwnerDraw = true;

ページコントロールの OnDrawTab イベントは下記のような感じで

//---------------------------------------------------------------------------
void __fastcall TForm1::PageControl1DrawTab(TCustomTabControl *Control,
      int TabIndex, const TRect &Rect, bool Active)
{
    //  描画を行うタブの番号(TabIndex)から
    //  本来のタブに記載される文字列(TabSheet の Caption)を取得
    AnsiString  TabTitle = PageControl1->Pages[TabIndex]->Caption;

    //  タブに現在のフォント(PageControl のFont)でタブに記載する
    //  文字を書いた場合の幅と高さを取得
    int TitleWidth = Control->Canvas->TextWidth(TabTitle);
    int TitleHeight = Control->Canvas->TextHeight(TabTitle);

    //  描画領域を背景色で塗りつぶし
    //  Control->Canvas->Brush->Style = bsSolid;
    //  Control->Canvas->Brush->Color = clBlue;
    Control->Canvas->FillRect(Rect);

    //  描画を行うタブが、アクティブかどうかでフォントの色を変更
    if(Active){
        //  アクティブなら赤を指定
        Control->Canvas->Font->Color = clRed;
    }
    else {
        //  そうでなければ黒を指定
        Control->Canvas->Font->Color = clBlack;
    }

    //  描画の座標領域は、引数 TRect に存在
    //
    //  タブの中心に表示する場合は、
    //    全体の幅から、文字の幅を引くと、余白の幅が求められ
    //    文字を書く位置を余白の幅の半分にすると、中心に描画される
    int LeftPos = Rect.left + (Rect.Width()  - TitleWidth ) / 2;
    int TopPos  = Rect.top  + (Rect.Height() - TitleHeight) / 2;

    //  アクティブでない場合描画位置を2ドット程下に下げる
    //  指定しないと見てくれがなんか悪い
    if(Active == false){
        TopPos+=2;
    }

    //  テキストの描画
    Control->Canvas->TextOutA(LeftPos,TopPos,TabTitle);
}
//---------------------------------------------------------------------------


tabsheet フォン変更   by こなみ 2010年1月31日 11:21

 
PageControl に複数のタブシートを配置し、アクティブになるタブシートの Caption のフォントの色を変更したいですが、以下のように、

TabSheet->Font->Color = clBlue;

にしても、フォントの色は変わらないです。
よろしくお願いします。


Top > コンポーネント > tabsheet フォン変更