Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.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); |