【问题标题】:MFC CEdit character delete not workingMFC CEdit 字符删除不起作用
【发布时间】:2015-06-17 20:12:11
【问题描述】:

我今天在我的一个客户的 Windows XP SP 3 上偶然发现了一个奇怪的问题:使用 BACKSPACE 或 DELETE 按钮删除来自 CEdit 的文本不起作用。更准确地说,我将光标放在文本的末尾,然后点击BACKSPACE 按钮将导致文本光标向左移动,但删除的字符不会消失。实际删除发生,因为如果我强制刷新窗口,删除的字符会丢失。 我猜是油漆问题,但我找不到问题所在以及如何解决它,而且我无法在其他地方重现该错误。 我检查了代码,行为类似的CEdits 没有覆盖任何事件,也没有设置特殊属性。

【问题讨论】:

    标签: mfc cedit


    【解决方案1】:

    我的回答是猜测:您覆盖了 WM_CTLCOLOREDIT 并且您返回一个 NULL Brush 以绘制透明。

    结果就是你所看到的。如果无法覆盖背景,则编辑控件会显示工件...

    这种在标准控件中绘制透明的“技巧”并不是一个真正的好方法,但它遍布整个 Internet,因此每个人都在使用它而不知道它的缺点。通常这只适用于不改变的静态控件。

    【讨论】:

    • 你是对的。我确实返回了一个 NULL_BRUSH。我将其更改为 WHITE_BRUSH,现在可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2010-10-19
    • 1970-01-01
    相关资源
    最近更新 更多