【发布时间】:2014-04-25 14:51:28
【问题描述】:
当有人单击“Enter”时,我制作了一个能够接受数据的编辑控件。我使用子类化来做到这一点。它工作得几乎完美。但是点击“Enter”后,系统每次都会播放“Error”的声音。我尝试使用 ES_MULTILINE 和 ES_AUTOVSCROLL 绕过它,但它有部分帮助。现在点击“回车”后没有声音,但在文本框中出现了无用的“回车”字符,无法删除。 如何绕过系统声音?或者从该文本框中删除“Enter”字符(SetWindowText(handle, "") 没有帮助)。
【问题讨论】:
-
你试过
ES_WANTRETURN吗? -
它会发出哔哔声,因为在非多行的编辑控件中按 Enter 是没有意义的。 Enter 保留用于操作窗口的默认控件,如 OK 按钮。你为什么按无用的键?应该发生什么?
-
@nwp - ES_WANTREURN 没有改变任何东西。
-
@Hans Passant - 按无用的键是什么意思?我想以方便的方式确认数据,而不是使用鼠标单击按钮。
-
@HansPassant:我经常收到客户的请求,即按 Enter 键应该关注下一个编辑字段。特别是如果该程序要替换旧的文本模式数据输入应用程序。用户不关心 Windows UI 指南,他们希望按键序列保持不变,肌肉记忆等等。
标签: c++ winapi subclassing