Я столкнулся со следующей мистической вещью в Winapi / MFC, у меня есть поле для редактирования, содержимое которого я должен выбрать на Tab, Lclick, Rclick, Mclick и т. Д.
В некотором родеочевидный путь - обработать сообщение SETFOCUS и вызвать SetSel (0, -1), который должен выделить весь текст.Но это не работает!
Что не так?Я пробовал гуглить, кажется, что все переопределяют Lclilks или обрабатывают SetSel в родительских окнах, но это неправильно с точки зрения инкапсуляции, также ломаются множественные щелчки (пользователь хочет вставить что-то в середине текста) и т. Д.1005 *
Почему мой подход не работает, я пробовал 10 разных способов, пытался перехватить все возможные фокусные сообщения, просматривал информацию на MSDN, но ничего не работает, как ожидалось.
Также мне нужновоссоздать каретку в фокусе, которая также, похоже, не работает.
SETFOCUS сообщение попадает в ловушку в порядке.Если я добавлю __asm int 3
, он будет ломаться каждый раз.
Кажется, что проглотил каррет и сетсель.