在 MFC 应用程序中显示文本

Posted

技术标签:

【中文标题】在 MFC 应用程序中显示文本【英文标题】:Display text in a MFC application 【发布时间】:2012-07-03 05:23:22 【问题描述】:

我需要。我有一个示例文本,例如“在 mfc 应用程序中显示文本”。假设我打算在其中绘制此文本的客户端窗口非常小(水平),以至于在一行中唯一可以容纳的文本是“显示文本”。不显示“mfc 应用程序”字样。我的问题是,如何确保这些单词显示在下一行,而不是仅仅被剪掉?我正在使用 drawtext 函数来显示文本。

谢谢。

【问题讨论】:

【参考方案1】:

默认情况下,DrawText API 的行为完全符合您的需要,除非指定了 DT_SINGLELINE 格式。只需提供正确的 lpRect 参数即可。

http://msdn.microsoft.com/en-us/library/windows/desktop/dd162498%28v=vs.85%29.aspx

MFC CDC::DrawText 方法具有相同的行为。

使用GetClientRect函数获取一个窗口矩形,并将这个矩形传递给DrawText方法。

【讨论】:

这是我的代码:CRect rect; GetClientRect(&rect); dc.DrawText(fileText.GetString(), &rect, DT_LEFT);我正在打开的文本文件在一行中包含所有文本。我需要在适当的点剪切文本(取决于我的客户端窗口大小)并在下一行继续。 对这个帖子感到抱歉。我是新来的,正确格式化代码是我还没有学到的东西。【参考方案2】:

我也遇到了您报告的问题。并按照我在https://***.com/a/29241196/383779中的解释解决了它

您首先需要使用DT_CALCRECT 标志调用DrawText,以了解将哪个矩形传递给真正有效的DrawText

这很奇怪,但是……就是这样。 MFC ...你知道的。

【讨论】:

以上是关于在 MFC 应用程序中显示文本的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2019 MFC 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?

mfc 图片列表显示

MFC中如何给编辑框设置文本内容?

MFC 工具提示,GetDlgItemText 不返回用于工具提示的文本

MS Visual Studio 2013 MFC 应用程序:为消息/输出服务创建文本框

MFC对话框中如何给一个edit文本框赋初值?