В списке не будет отображаться курсор клавиатуры при щелчке мышью или фокусировке, установленной программно - PullRequest
0 голосов
/ 12 июля 2019

Я использую CListBox с выбором Extended. Когда я нажимаю на элемент управления, курсор не отображается. Использование стрелок вверх и вниз также не позволяет мне показать каретку. Если я нажму вкладку, а затем переместлю вкладку, я смогу увидеть каретку. Использование GotoDlgCtrl(&listboxCtrl) или listboxCtrl.SetFocus() также не работает.

Как заставить клавиатуру отображаться при щелчке мыши или программно?

1 Ответ

3 голосов
/ 12 июля 2019

Использование мыши не должно отображать связанные с клавиатурой функции пользовательского интерфейса:

Например, если последний ввод поступил от мыши, система будет скрывать сигналы клавиатуры . И, если последний ввод поступил с клавиатуры, система покажет сигналы клавиатуры.

Чтобы подделать изменение, вы можете использовать:

PostMessage/SendMessage(hListBox, WM_UPDATEUISTATE, MAKELONG(UIS_CLEAR, UISF_HIDEACCEL|UISF_HIDEFOCUS), 0);

... или отправьте его в окно верхнего уровня, если вы хотите применить изменения ко всем дочерним элементам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...