現状ではできないので、上書きされないようにする為の機能を追加しました
よろしければ機能を追加したこちらのバージョンをダウンロードしてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
以下の関数を追加しました
// キー入力文字列処理の入力文字数が限界に達している状態で
// 文字列の末端部分で入力が行われた場合の処理モードを変更する
int SetKeyInputStringEndCharaMode( int EndCharaMode ) ;
引数の EndCharaMode には以下の二つの値のどちらかを渡します
// 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、最後の文字を上書きする( デフォルト )
#define DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE (0)
// 文字数が限界に達している状態で文字列の末端で文字が入力された場合は、何も変化しない
#define DX_KEYINPSTR_ENDCHARAMODE_NOTCHANGE (1)
初期状態では DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE になっているので、
DX_KEYINPSTR_ENDCHARAMODE_NOTCHANGE を渡して SetKeyInputStringEndCharaMode を呼んでください
そうすれば以降文字数が限界に達している状態で、文字列の末端にカーソルがある状態で文字を入力しても
最後の文字が上書きされなくなります
( 因みにカーソルが文字列の末端ではない箇所にある場合は DX_KEYINPSTR_ENDCHARAMODE_OVERWRITE と同じ動作をします )