In MFC, how do I stop the touch keyboard from appearing when selecting controls without text inputs? Specifically, CComboBox
-derived and original CListBox
controls. The issue occurs in a large C++ application for touchscreen tablets running Windows 10. Bizarrely, selecting any CEdit
control in the application solves the issue until the application restarts.
I've been looking at InputScope
, AutomationPeer
, and even killing the keyboard process TabTip.exe
after it appears, but none of these prevent the keyboard from showing in the first place.
A previous solution involved changing the "Automatically show touch keyboard" registry setting SOFTWARE\Microsoft\TabletTip\1.7\EnableDesktopModeAutoInvoke
on focus change, but alerting the touch keyboard with SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE)
added unacceptable delay to the UI.