我有一个CEdit控件,我希望能够从该控件获取时间输入。现在,我希望此输入的格式为hh:mm:ss。目前,我对小时、分钟和秒使用单独的CEdit控件。我知道我可以要求用户输入冒号来分隔时、分、秒,但我认为这会让我的用户感到困惑。
我实际上希望我的控件显示冒号,并使控件的不同部分以制表位为停靠点,这样用户就可以清楚地知道他们输入的确切时间。我知道我在别处见过这种情况,但我不知道自己该怎么做。
理想情况下,这些将作为3个单独的字符串出现,因为我没有使用Epoch时间或任何其他类型的系统时间,而是使用我自己的时间计数。(即我们在文件中有多少数据样本。)意思是每次,我的时钟从零开始,从零开始计数。
谢谢
丹
发布于 2009-08-04 22:58:30
重新格式化文本很简单,虽然我会等到丢失焦点的消息,而不是在用户键入时插入冒号,但这会让人感到困惑,特别是当他们需要编辑或删除字符时。
您可以通过获取VK_TAB在字段中实现制表位,但我不确定我是否会这样做-用户习惯于将制表符跳到下一个控件,而不是跳到控件中的位置。
另一种方法是有3个独立的控件,但检测用户是否为第一个控件输入了足够的字符,或者何时输入制表符(或冒号),然后自动将焦点切换到下一个控件。我认为这更简洁,这就是IP_ADDRESS控件所做的。
发布于 2009-08-04 22:53:35
您必须处理每个WM_CHAR (或WM_KEYUP,视情况而定),并在用户键入时重新格式化编辑框中的文本。处理VK_TAB的消息并设置适当的选择。
https://stackoverflow.com/questions/1230260
复制相似问题