使用 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,我的问题可能会得到解决...是否有任何方法可以覆盖它?
1条答案
按热度按时间nzrxty8p1#
当工具栏选项“允许文本按钮”更改时,“文本按钮”的文本对齐方式会更改。尽管如果未选中此选项,文本按钮工作正常。但它确实会更改文本对齐方式...