У меня есть фрагмент кода, который стирает последний символ строки и затем устанавливает текст в элементе управления Edit на эту новую строку. Проблема заключается в том, что после этого изменяется позиция персонажа, который будет набран в следующий раз.
Пример:
Редактировать блок управления: [12345 | ] (Косая черта - это место, где следующий символ
будет напечатан)
После выполнения указанного кода
Редактировать блок управления: [| 12345] (Позиция теперь перемещена вперед,
до 1)
Как бы я снова переместил позицию в конец строки?
Мой код:
CString str1 = ""; //Temporary CString
eb1->GetWindowText(str1); //Store text from Edit Control to the CString
string strCheck1 = str1.GetString(); //Place the CString into a regular string
int s1 = strCheck1.length() -1; //Get index of last character and new size
bool check1 = true; //Boolean variable for the checking
//Get if character is valid
if((strCheck1[s1] <= '0' || strCheck1[s1] >='9') && strCheck1[s1] != '.') {check1 = false;}
//If is invalid I erase last character and put it back intact into the Edit Control
if(check1 == false) {strCheck1.erase(s1,1); eb1->SetWindowTextA(strCheck1.c_str());}