VizCommand #19 バックスペースキーが押されたときの処理

バックスペースキーが押された時、自分が入力したコマンド文字列より前のフォーム文字列などを削除しないように止める。

Window.hで、

OnCharを追加。

Window.cppで、

WM_CHARでOnCharを呼ぶ。
戻り値-1なら0を返して入力キャンセルをする。

通常は入力キャンセルしないので0を返す。

CustomControl.cppも、

OnCharを呼ぶ。

ConsoleCore.hは、

入力開始位置m_lStartPosと入力現在位置m_lCurrentPos、そしてOnCharを追加。

ConsoleCore.cppは、

入力開始位置を0にしておく。

PutConsoleするたびに開始位置を更新。

バックスペースが押されたら、現在位置が開始位置より手前だったら入力キャンセル。

f:id:BG1:20170503204002p:plain

フォーム文字列の末尾が開始位置。

f:id:BG1:20170503203946p:plain

"hoge"と入力して、

f:id:BG1:20170503204136p:plain

入力文字列にはバックスペースが効くが、

f:id:BG1:20170503204352p:plain

ここより前には戻れない。

・バックスペースキーが押されたときの処理 · bg1bgst333/VizCommand@5afa9f3 · GitHub