C++ Builder窗体自定义消息框,替换自带ShowMessage对话框,解决ShowMessage字体小不够大的问题。自适应长文本消息、多行文本消息。

ooolinux 2019-08-18 05:50:58
C++ Builder窗体自定义消息框,替换自带ShowMessage对话框,解决ShowMessage字体小不够大的问题。自适应长文本消息、多行文本消息。
https://download.csdn.net/download/u010165006/11576727
没积分的,留伊妹儿发。

核心代码:
object Button1: TButton
Anchors = [akBottom]
Caption = '确定'
ModalResult = 1
TabOrder = 0
end
//---------------------------------------------------------------------------
void __fastcall TfrmMsg::show(AnsiString msg,int fontSize/*=12*/)
{
this->Caption=Application->Title;
Label1->Caption=msg;
Label1->Font->Size=fontSize;
this->ClientWidth=Label1->Width+40;
this->ClientHeight=Label1->Height+80;
this->Position=poScreenCenter;
this->ShowModal();
}
//---------------------------------------------------------------------------

只有一个问题不好解决,我看ShowMessage显示多行中文的时候,行与行之间是有一定间隔的,不知道是怎么实现的?
Label1如果用宋体,多行文本之间是几乎没有间隔的,只发现微软雅黑字体多行之间有一定间隔,但是字体偏黑了。
...全文
295 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2019-08-23
  • 打赏
  • 举报
回复
ShowMessage显示文本是画出来的,还是用单一的Label来显示的?
ooolinux 2019-08-20
  • 打赏
  • 举报
回复
修改了一下: object frmMsg: TfrmMsg BorderStyle = bsDialog Constraints.MinWidth = 120 Position = poScreenCenter object Button1: TButton Anchors = [akBottom] Caption = '确定' ModalResult = 1 end end
ooolinux 2019-08-19
  • 打赏
  • 举报
回复
微软雅黑字体偏黑的问题,设置字体颜色为某种深灰色倒是可以。 __fastcall TfrmMsg::TfrmMsg(TComponent* Owner) : TForm(Owner) { int c=50; Label1->Font->Color=TColor(RGB(c,c,c)); }
ooolinux 2019-08-19
  • 打赏
  • 举报
回复
引用 2 楼 draculamx 的回复:
多行文本中,加入2个“\n”行不行?这样就有行距就增大了? 如果觉得效果不太好,可以动态生成 TLabel,每个TLabel显示一行,然后自己控制TLabel的位置,就可以最大自由度的调整行距了
两个“\n”行距太大,动态生成Label倒是一种方法,就是麻烦了一点。
draculamx 2019-08-19
  • 打赏
  • 举报
回复
多行文本中,加入2个“\n”行不行?这样就有行距就增大了?
如果觉得效果不太好,可以动态生成 TLabel,每个TLabel显示一行,然后自己控制TLabel的位置,就可以最大自由度的调整行距了

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧