質問

時間を入力できるようにしたいCEditコントロールがあります。ここで、この入力をhh:mm:ssの形式で入力します。現在、時間、分、&に個別のCEditコントロールを使用しています。秒ユーザーが時間、分、秒を区切るためにコロンで入力する必要があることは知っていますが、これはユーザーにとって混乱を招くと信じています。

実際には、コントロールにコロンを表示し、コントロールのさまざまなセクションをタブストップにすることで、ユーザーがいつ正確に入力するのかが明確になるようにします。そして、私はそれを自分で行う方法を知りません。

理想的には、これらは3つの独立した文字列として入力されます。これは、エポック時間や他の種類のシステム時間を使用せず、自分の時間カウントを使用しているためです。 (つまり、ファイルにいくつのデータサンプルが入っているか。)毎回、つまり、私の時計はゼロから始まり、そこからカウントアップします。

ありがとう

ダン

役に立ちましたか?

解決

テキストの再フォーマットは非常に簡単ですが、ユーザーが入力している間にコロンを挿入するのではなく、フォーカスメッセージが失われるまで待ちますが、特に文字を編集または削除する必要がある場合は混乱します。

VK_TABを取得することでフィールド内にタブストップを実装できますが、これを行うかどうかはわかりません。ユーザーは、コントロール内の位置ではなく、次のコントロールにジャンプするタブに慣れています。

これを行うもう1つの方法は、3つの個別のコントロールを使用しますが、ユーザーが最初に十分な文字を入力したか、タブ(またはコロン)を入力したことを検出し、自動的に次のフォーカスに切り替えます。これはすてきだと思う、それはIP_ADDRESSコントロールがすることだ。

他のヒント

各WM_CHAR(または必要に応じてWM_KEYUP)を処理し、ユーザーの入力に応じて編集ボックスのテキストを再フォーマットする必要があります。 VK_TABのメッセージを処理し、必要に応じて選択を設定します。

この記事では目的の場所に到達できないことはわかっていますが、開発者はあなたの質問の多くを実装していると思います:

http://www.codeproject.com/KB/edit/datetimedit.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top