Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Visual C++ / MFC / WTL > CMFCMaskedEdit -- при щелчке "мыши" курсор попадал на первый символ в нём?


Автор: erslgoeirjh 21.02.18, 08:22
Есть компонент текстового поля с маской IDC_EDIT1, которому соответствует переменная m_IDC_EDIT1 типа CMFCMaskedEdit.
Как сделать так, чтобы при щелчке "мыши" на её левую кнопку курсор в этом текстовом поле становился на первый символ в нём?

Нужно создать класс CMyMFCMaskedEdit, который является потомком класса CMFCMaskedEdit. Но какие функции следует переопределить и что следует написать в коде переопределения?

Автор: ЫукпШ 21.02.18, 09:37
Цитата erslgoeirjh @
Есть компонент текстового поля с маской IDC_EDIT1, которому соответствует переменная m_IDC_EDIT1 типа CMFCMaskedEdit.
Как сделать так, чтобы при щелчке "мыши" на её левую кнопку курсор в этом текстовом поле становился на первый символ в нём?

Не могу гарантировать на 100%, но вроде припоминаю,
что узнать/изменить положение курсора в Edit - контроле можно
посредством сообщений EM_GETSEL/EM_SETSEL.
При этом, если не используется выделение текста, два параметра
будут просто равны друг другу.
Для 1-й позиции Edit - контрола значение параметра равно 0.
Значит, видимо надо сделать:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    ::SendMessage(hwndEdit,(UINT)EM_SETSEL,(WPARAM)0,(LPARAM)0);
    ::SetFocus(hwndEdit);

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)