MFC 动态文本控件?

Posted

技术标签:

【中文标题】MFC 动态文本控件?【英文标题】:MFC Dynamic Text Control? 【发布时间】:2010-02-26 04:24:08 【问题描述】:

我应该使用什么 MFC 控件以及如何使用它在对话框上显示不断变化的文本(如进度文本)?

例如,我应该使用静态文本控件吗?但是您可以通过编程方式更改它吗?

【问题讨论】:

【参考方案1】:

是的,您可以通过编程方式更改静态控件的内容。将 ID 更改为 IDC_STATIC,然后您可以为其分配一个成员变量。您可以使用your_var.SetWindowText() 设置文本。

编辑:你做了多少改变,多快?我做了一个带有计时器(设置为持续时间为 0)的快速测试程序,它在时间触发时格式化并将新字符串写入控件,因此它会不断更新。这是运行一段时间后的样子:

这是任务管理器显示的内容:

右边的尖峰(至少大部分)来自于保存它的测试程序的屏幕截图,等等。一旦我停止做这样的事情,CPU 使用率就会恢复到噪音水平(偶尔会有一点点)。我让程序运行——半小时左右后,它仍然运行良好,没有明显的 CPU 使用率(根据任务管理器,它甚至没有使用一秒钟的 CPU 时间)。

【讨论】:

我已经这样做了,但由于某种原因,它似乎在多次频繁更改后耗尽了 CPU 你能以编程方式更改静态文本控件的字体和颜色吗? @Chetan:是的。要更改字体,请调用其SetFont() 成员。要更改背景颜色,请返回画笔以响应 WM_CTLCOLORWM_CTLCOLORSTATIC。要设置文本颜色,请为处理WM_CTLCOLOR 时收到的DC 调用SetTextColor()

以上是关于MFC 动态文本控件?的主要内容,如果未能解决你的问题,请参考以下文章

mfc怎么修改静态文本控件文字颜色

MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

使用纯 Windows API 设置 StaticText 控件文本,无 MFC

检测 MFC 控件是不是没有足够的宽度来容纳文本(并且文本将被截断)

MFC静态文本控件怎么设置字体

VC++(MFC)中动态创建和管理按钮控件,怎么做?