We are maintaining a legacy application that was written in a combination of C, C++, and C++/CLI that is deployed at tablet PC running Windows 10. Re-writing the application is not an option, but the users are complaining about the touch keyboard covering up inputs. What technique, if any, can I use to avoid inputs being covered by the touch keyboard?
Asked
Active
Viewed 307 times
0
-
1[How can I reposition my controls so they aren’t covered by the touch keyboard?](https://blogs.msdn.microsoft.com/oldnewthing/20150608-00/?p=45431) – IInspectable Feb 20 '17 at 21:27
-
What GUI toolkit are you using? – David Yaw Feb 20 '17 at 21:27
-
@DavidYaw WinForms targeting .NET v4.5.2 – rjzii Feb 20 '17 at 22:22
1 Answers
1
You cannot control where the keyboard is, you can only adapt your application so the keyboard does not cover important parts. Applications with one large surface (listview, document etc.) generally scroll themselves so the caret/selection is visible. Some other windows resize themselves instead (the standard open/save dialog) so that the most important control is visible.
If you create a COM class that implements IFrameworkInputPaneHandler
then you can subscribe to keyboard changes by registering yourself with IFrameworkInputPane::AdviseWithHWND
. You can find a example of this on Raymond Chens blog.

Anders
- 97,548
- 12
- 110
- 164
-
Thanks for the response. I had a bit of a "lack of coffee" moment yesterday and put Windows 8 instead of the proper Windows 10. Is still approach still valid on that platform? – rjzii Feb 21 '17 at 14:26
-
Yes. MSDN says IInputPanelConfiguration is ignored on Win10 but this should still work. – Anders Feb 21 '17 at 14:42
-
Great! I'll run it by the rest of the team and then accept your answer once we have a POC. – rjzii Feb 21 '17 at 15:38