1

我有一个 CEdit 控件,我希望能够从中花时间输入。现在我希望这个输入以 hh:mm:ss 的形式出现。目前我正在使用单独的 CEdit 控件来控制小时、分钟和秒。我知道我可以要求用户输入冒号来分隔小时、分钟、秒,但我相信这会让我的用户感到困惑。

我实际上希望我的控件显示冒号,并将控件的不同部分设置为制表位,以便用户清楚他们输入的确切时间。我知道我在其他地方看到过这个,我只是我自己不知道怎么做。

理想情况下,这些将作为 3 个单独的字符串出现,因为我没有使用 Epoch 时间或任何其他类型的系统时间,而是使用我自己的时间计数。(即我们在文件中有多少数据样本。)意味着每次,我的时钟从零开始,并从那里开始计数。

谢谢

4

2 回答 2

0

您必须处理每个 WM_CHAR(或 WM_KEYUP,视情况而定)并在用户键入时重新格式化编辑框中的文本。处理 VK_TAB 的消息并根据需要设置选择。

于 2009-08-04T22:53:34.693 回答
0

重新格式化文本很简单,虽然我会等到失去焦点消息而不是在用户键入时插入冒号,但它会让人感到困惑,尤其是当他们需要编辑或删除字符时。

您可以通过获取 VK_TAB 在字段内实现制表位,但我不确定我会这样做 - 用户习惯于跳到下一个控件的制表符而不是控件内的位置。

另一种方法是使用 3 个单独的控件,但检测用户何时为第一个输入了足够的字符,或输入了一个制表符(或冒号),然后自动将焦点切换到下一个。我认为这更简洁,这就是 IP_ADDRESS 控件的作用。

于 2009-08-04T22:58:30.223 回答