这很难做得很好.一种天真的方法可以处理WM_KEYDOWN拦截退格和删除密钥(VK_BACK和VK_DELETE)的消息.但是,您还需要处理用户选择一些现有文本然后将其删除(通过退格键或删除),剪切或替换它(通过键入键或粘贴其他文本).我不认为这是值得的,即使你能做得好,当你打破所有这些正常行为时,它可能会让人感到困惑.(它也可能令人难以置信的烦恼.想象一下,你在控件中有一些文本"bar"但是你想把它改成"baz".如果控件强制执行最小长度为3,那么试图在最后一个角色上退格工作.你必须先将它改为"barz",然后才能删除"r"字符.呃.)
如果您的控件需要最小长度,则最好在单独的验证步骤中强制执行它(例如,当用户单击"确定"按钮或将焦点移动到另一个控件时)并显示相应的错误消息.
我不确定您是否只允许将某些字符输入编辑控件,或者是否要将其限制为一系列数值.前者见3.
如果要将值限制为某个数值范围,我再次建议在单独的验证步骤中执行此操作.否则,您可能再次阻止用户以正常方式插入和删除字符.如果可以,请避免使用"编辑"控件并使用"轨迹栏"(滑块)控件.
您必须子类化Edit控件,处理WM_CHAR消息并拒绝您不想要的字符.您还需要处理WM_PASTE消息并执行类似的验证.
这与编辑控件没有任何关系,可能应该是一个单独的问题.你有什么尝试?你读过http://msdn.microsoft.com/en-us/library/bb760250.aspx吗?
| 归档时间: |
|
| 查看次数: |
688 次 |
| 最近记录: |