novaの日記: tab塗り塗り
二年半以上前に組んだプログラムの追加仕様がやって来た。新しい形式のファイルに対応させるらしい。新しいパーサを作ると時間がかかるので古い形式へのコンバータを作りました。こうすればコアロジックをそのまま使えるし。4h くらいで終了。
bcb6 で TPageControl の tab に色を付ける方法
先輩に「タブに色塗りたいんだけど如何やるの?」と聞かれたので調べてみた。DrawTab イベントがあるので如何考えてもココに書くハズ。TStringGrid の時の式を真似て書いてみた。…… tagRECT 型ってナニ?良く分からないが RECT 型には違いなかろう。強引にキャストして実行……あっ、何か成功したみたい。ちゃんと色変わってるし。
void __fastcall TForm1::PageControl1DrawTab(TCustomTabControl *Control,
int TabIndex, const TRect &Rect, bool Active)
{
//TabSheet1 (一番最初の tab) の tab を黒に塗りつぶして、白で Caption の文字列を書き込みます。
if(TabIndex == 0){
PageControl1->Canvas->Brush->Color = StringToColor(RGB(000,000,000));
PageControl1->Canvas->Font->Color = StringToColor(RGB(255,255,255));
PageControl1->Canvas->FillRect(Rect);
DrawText(Control->Canvas->Handle, TabSheet1->Caption.c_str(), -1,
(tagRECT *)&Rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
}
}
//---------------------------------------------------------------------------
tab塗り塗り More ログイン