У меня есть код, который удаляет недопустимые символы из введенной пользователем строки при вызове ON_EN_CHANGE.
Поэтому необходимо исправить положение курсора, если таковые удалены.
Для этого я пытался использовать GetSel для получения позиции, а затем установил ее, как показано ниже. f — другая переменная типа int
m_ExportDirectory.GetWindowTextA(directory);
//characters removed here
if (rem > 0)
{
int j;
m_ExportDefaultName.GetSel(f, j);
m_ExportDirectory.SetWindowTextA(directory);
m_ExportDefaultName.SetSel(f-rem, f-rem);
}
Но getsel всегда устанавливает оба & от j до 0. Я попытался переместить его вызов выше GetWindowText, но без изменений.
Я делаю что-то глупое? Если нет. Есть идеи?
Спасибо
Я думаю, что проблема в том, что GetSel()
возвращает выбор начальная и конечная позиция. Вы получаете (0,0), потому что текст не выбран пользователем.
Решено комментариями Тимса. Появляется проблема усталости и глупости с моей стороны!