MFC, как автоматически выделить весь текст в элементе управления CEdit - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть CMFCToolBarComboBoxButton на CMFCToolBar.Я хочу, чтобы всякий раз, когда CMFCToolBarComboBoxButton фокусировался, будет выделяться весь текст.
Какой самый элегантный способ его реализации?

Большое спасибо!
Ади Барда

Ответы [ 2 ]

0 голосов
/ 24 ноября 2011

Это должно быть поведение по умолчанию стандартного элемента управления редактированием. Если это не так, что-то еще явно удаляет это поведение. Может быть, вы можете найти какой-нибудь флаг, который вы можете установить на кнопке со списком?

Если нет: подкласс управления редактированием обрабатывает сообщение WM_GETDLGCODE . Вернуть значение ORed с DLGC_HASSETSEL. Если для элемента управления установлен этот флаг, то Windows автоматически выделит весь текст в фокусе.

0 голосов
/ 24 ноября 2011

Не уверен, что это самый элегантный способ, но я предполагаю, что наиболее распространенный способ сделать это - создать производный класс и переопределить OnSetFocus (точное имя метода не проверено), а также вызвать SetCurSel () для элемента управления редактирования.WM_FOCUS отправляется только элементу управления, и для него нет уведомлений, так что у вас будет не так много вариантов, кроме как сделать что-то, что заставит элемент управления обработать событие - будь то его отражение в другом месте или просто реализация поведениясам.(Я полагаю, теоретически есть все виды финков, которые можно делать с перехватом сообщений, но это, конечно, не самый элегантный способ ...)

...