【发布时间】:2010-02-26 04:24:08
【问题描述】:
我应该使用什么 MFC 控件以及如何使用它在对话框上显示不断变化的文本(如进度文本)?
例如,我应该使用静态文本控件吗?但是您可以通过编程方式更改它吗?
【问题讨论】:
标签: visual-studio mfc controls
我应该使用什么 MFC 控件以及如何使用它在对话框上显示不断变化的文本(如进度文本)?
例如,我应该使用静态文本控件吗?但是您可以通过编程方式更改它吗?
【问题讨论】:
标签: visual-studio mfc controls
是的,您可以通过编程方式更改静态控件的内容。将 ID 更改为 IDC_STATIC,然后您可以为其分配一个成员变量。您可以使用your_var.SetWindowText() 设置文本。
编辑:你做了多少改变,多快?我做了一个带有计时器(设置为持续时间为 0)的快速测试程序,它在时间触发时格式化并将新字符串写入控件,因此它会不断更新。这是运行一段时间后的样子:
这是任务管理器显示的内容:
右边的尖峰(至少大部分)来自于保存它的测试程序的屏幕截图,等等。一旦我停止做这样的事情,CPU 使用率就会恢复到噪音水平(偶尔会有一点点)。我让程序运行——半小时左右后,它仍然运行良好,没有明显的 CPU 使用率(根据任务管理器,它甚至没有使用一秒钟的 CPU 时间)。
【讨论】:
SetFont() 成员。要更改背景颜色,请返回画笔以响应 WM_CTLCOLOR 或 WM_CTLCOLORSTATIC。要设置文本颜色,请为处理WM_CTLCOLOR 时收到的DC 调用SetTextColor()。