【发布时间】:2013-09-06 13:12:55
【问题描述】:
我正在尝试动态更改CStatic 控件的文本。我的成员变量名为mStatic,类型为CStatic。我已将 ID 更改为 IDC_MYSTATIC 而不是 IDC_STATIC。
当我想更改控件的文本时,我正在调用mStatic.SetWindowText("asdfasdf")。我会定期在计时器中执行此操作。
现在我遇到的问题是,在我调用SetWindowText() 后,之前的文本没有被删除。它只是不断堆积,直到我在屏幕上弄得一团糟。
父窗口具有带位图背景的分层属性。我还设置了 color_key 属性,因此位图的某种颜色被视为透明(即它不会被绘制并会让鼠标消息通过)。 mStatic 控件绘制在具有位图背景的不透明部分上。
为什么窗口没有失效?
【问题讨论】:
-
这听起来像是背景擦除问题。使用标准对话框,这可以很好地工作。给我们更多信息,给我们看更多代码。您的 mStatic 变量驻留在什么样的窗口中?等
-
对不起,我不知道它所在的窗口会影响静态控件的绘制;问题已更新
标签: c++ text static mfc invalidation