我有一个CEdit控件,我希望能够从中获取时间输入。现在我希望这个输入以hh:mm:ss的形式出现。目前我正在使用一个单独的CEdit控制小时,分钟和&秒。我知道我可以要求用户输入冒号分隔小时,分钟,秒,但我认为这会让我的用户感到困惑。
我实际上希望我的控件显示冒号,并且控件的不同部分是制表位,这样用户可以清楚地知道他们究竟进入的时间。我知道我已经在其他地方看到了这一点,我自己也不知道怎么做。
理想情况下,这些将作为3个单独的字符串出现,因为我没有使用Epoch时间或任何其他类型的系统时间,但是使用我自己的时间计数。 (即我们在文件中有多少数据样本。)这意味着每次,我的时钟从零开始,并从那里开始计数。
由于
丹
答案 0 :(得分:0)
您必须处理每个WM_CHAR(或WM_KEYUP,视情况而定)并在用户输入时重新格式化编辑框中的文本。处理VK_TAB的消息并根据需要设置选择。
答案 1 :(得分:0)
重新格式化文本很简单,虽然我会等到丢失的焦点消息而不是在用户输入时插入冒号,但如果他们需要编辑或删除字符,则会让人感到困惑。
你可以通过获取VK_TAB在字段中实现制表位,但我不确定我会这样做 - 用户用于跳转到下一个控件而不是控件中的位置。
另一种方法是使用3个单独的控件,但检测用户何时为第一个输入了足够的字符,或者输入了选项卡(或冒号),然后自动将焦点切换到下一个。我认为这更整洁,这是IP_ADDRESS控件所做的。
答案 2 :(得分:0)
我知道这篇文章并没有让你满意,但我认为开发人员已经实现了你所要求的大部分内容: