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_CTLCOLOR
或 WM_CTLCOLORSTATIC
。要设置文本颜色,请为处理WM_CTLCOLOR
时收到的DC 调用SetTextColor()
。以上是关于MFC 动态文本控件?的主要内容,如果未能解决你的问题,请参考以下文章
MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
使用纯 Windows API 设置 StaticText 控件文本,无 MFC