Delphi TToolButton文本左对齐?

ttygqcqt  于 2023-04-20  发布在  其他
关注(0)|答案(1)|浏览(151)

使用 Delphi .我有一个TToolbuttons的垂直列表,在文本模式下。在设计时,按钮中的文本是左对齐的。在运行时,按钮中的文本是居中的。
有没有什么方法可以强制文本左对齐,直接在图标旁边?
我在Vcl.ComCtrls中的TToolBarStyleHook.Paint(Canvas:TCanvas);

if (WStyle and TBSTYLE_LIST = TBSTYLE_LIST) then
      begin
        sRect := R;
        Canvas.Font := TControlClass(Control).Font;
        DrawText(Canvas.Handle, PChar(Info.pszText),
          Length(Info.pszText), sRect, DT_CENTER or DT_WORDBREAK or DT_CALCRECT);
        RectCenter(sRect, R);
        if ImageDrawed and (Info.iImage >= 0) and (FImages <> nil) then
        begin
          iRect := Rect(5, iRect.Top, FImages.Width + 5, iRect.Bottom);
          OffsetRect(iRect, R.Left, 0);
          sRect := Rect(iRect.Right + 3, sRect.Top, R.Right, sRect.Bottom);
        end;
        if DrawButtonFace then
          DrawControlText(Canvas, Details, Info.pszText, sRect, DT_LEFT or DT_WORDBREAK)
        else
        begin
          if ButtonState <> ttbButtonDisabled then
            Canvas.Font.Color := LStyle.GetSystemColor(clBtnText)
          else
            Canvas.Font.Color := LStyle.GetSystemColor(clGrayText);
          SetBkMode(Canvas.Handle, Transparent);
          DrawText(Canvas.Handle, Info.pszText, Length(Info.pszText), sRect,
            DT_LEFT or DT_WORDBREAK);
        end;
      end

现在如果DT_CENTER改为DT_LEFT,我的问题可能会得到解决...是否有任何方法可以覆盖它?

nzrxty8p

nzrxty8p1#

当工具栏选项“允许文本按钮”更改时,“文本按钮”的文本对齐方式会更改。尽管如果未选中此选项,文本按钮工作正常。但它确实会更改文本对齐方式...

相关问题