タブのCaptionを中央揃えにするには?

解決


shiro  2006-06-26 21:04:31  No: 22282

超初心者なので教えていただきたいのですが。。。
現在下記のとおりタブを切り替えの際に色が替わるように設定しております。

ただ、テキストを一度塗りつぶしているので、再表示をするようにしているのですが、
これを中央揃えにするにはどうしたらいいのでしょうか?

教えてください。よろしくお願いいたします。

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;


HOta  2006-06-26 22:47:05  No: 22283

TextOutをDrawTextを使えばどうでしょうか。


shiro  2006-06-27 00:28:00  No: 22284

HOta様
ご助言ありがとうございます。

ただ、私にはDrawTextをどう使っていいのかもわかりません。
自分なりに調べているのですが、、、
もう少し詳しく教えていただけると助かります。

よろしくお願いいたします。


HOta  2006-06-27 05:50:04  No: 22285

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を参照してください。
         //この場合は、一行で縦中央・横中央

です。


shiro  2006-06-27 18:44:57  No: 22286

HOta様

ありがとうございました。解決しました。
言葉にならないくらい感謝です。本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加