超初心者なので教えていただきたいのですが。。。
現在下記のとおりタブを切り替えの際に色が替わるように設定しております。
ただ、テキストを一度塗りつぶしているので、再表示をするようにしているのですが、
これを中央揃えにするにはどうしたらいいのでしょうか?
教えてください。よろしくお願いいたします。
procedure TForm1.pgcMainInfoDrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
inherited;
with Control.Canvas do begin
Brush.Color := $00D3CDCF;
if Active then Brush.Color := clBtnFace;
FillRect(Rect);
TextOut(Rect.Left+4.Top+4,pgcMainInfo.Pages[TabIndex].Caption);
end;
end;
TextOutをDrawTextを使えばどうでしょうか。
HOta様
ご助言ありがとうございます。
ただ、私にはDrawTextをどう使っていいのかもわかりません。
自分なりに調べているのですが、、、
もう少し詳しく教えていただけると助かります。
よろしくお願いいたします。
Helpにあるとおりです。
ISAPIのDrawTextより
int DrawText(
HDC hDC, // handle to device context
LPCTSTR lpString, // pointer to string to draw
int nCount, // string length, in characters
LPRECT lpRect, // pointer to structure with formatting dimensions
UINT uFormat // text-drawing flags
);
DrawText(Control.Canvas.Handle,
// 対象のデバイスハンドル
PChar(pgcMainInfo.Pages[TabIndex].Caption),
//表示する文字列へのポインター
-1,
//文字数-1で全文字数
Rect,
//表示範囲Rect
DT_CENTER + DT_SINGLELINE + DT_VCENTER);
//この定数については、HelpのISAPIのDrawTextを参照してください。
//この場合は、一行で縦中央・横中央
です。
HOta様
ありがとうございました。解決しました。
言葉にならないくらい感謝です。本当にありがとうございました。
ツイート | ![]() |