我正在使用MFC框架。
我有一个CEdit
控件,用于显示状态。
如何更改字体大小以适合文本?
(爱荷华州,我希望字体大小尽可能大以便文本适合。)
加分:如何使文本居中?
我不是MFC框架的专家。
以下是一些示例文本:
通过
失败
失败-自测
通过自我测试
答案 0 :(得分:0)
首先,编辑框是一个UI项,允许用户键入文本,但是您发布的示例字符串看起来像状态或结果。用户是否必须输入“ FAILED-SELF TEST”之类的代码?我认为您宁愿需要一个只读控件,例如@Barmak Shemirani建议的静态控件(通常是凹陷,蚀刻或静态边缘样式)。
无论如何,我都会建议以下内容:
如果是这样,则可以以编程方式设置字体大小。 MFC在某种程度上是WinAPI的“薄包装”,并且所有WinAPI项都可以作为MFC类的公共成员使用(例如m_hWnd
是任何CWnd
派生类的WinAPI窗口的句柄),因此您宁愿在此处使用WinAPI级别。您应该在初始化期间检查/设置字体大小(WM_INITDIALOG
消息,映射到OnInitDialog()
处理程序)。这些步骤是:
DrawText()
功能并设置DT_CALCRECT
标志。这实际上不会绘制任何文本,而是将返回所需的大小(矩形)。也添加一些边距(请进行实验,但至少应为4像素-框架的两条垂直线,每侧各1像素)。如果小于或等于控件的大小(或者,您可以使用文本宽度进行测试,而没有多余的空白,而不是控件的工作区,而不是控件的总大小),这意味着默认字体是可以的,并且不需要其他操作。 lfHeight
参数或成员,如果为负,则为而是“增加”)。检查此字体现在是否可以,如果没有,请重复此步骤,直到文本适合为止。希望这会有所帮助,尽管我不知道这样做是否值得。