Friday, March 09, 2012 1:07 PM
I'm currently struggling with touch-enabling a C++ application. What I'd like to get is the small Keyboard launcher icon that starts the on screen keyboard when tapped. I get this for all the standard edit controls in my application, however we do have some custom controls as well that behave just like edits but offer enhanced functionality. How does the OS determine if a window should trigger the OSK launcher or not? Do we have to set a certain window style? Or use some API to register the window? I googled hard without finding an answer...
- Edited by JohnB2007 Friday, March 16, 2012 7:26 AM typo
Thursday, March 15, 2012 6:38 AM
Did you find anything on this?
Thursday, March 15, 2012 2:00 PM
Nope, not really, although the problem got less important to us - Win8 seems to have a ever present "pop up the OSK" key in the taskbar as soon as you have a touch device wired on. But for Win7 this remains a problem.
Tuesday, March 20, 2012 1:01 AM
The TIP uses accessibility to detect if the current control accepts text input. If your control is editable and provides the TextPattern then the TIP should show up. If your control is accessible then it should just work (and if it isn't, then it should be!)
Tuesday, March 20, 2012 10:59 AM
Thanks for the reply - it sounds like just what I should do. However, a quick search for "accessibility", "text pattern" and other related queries in the MSDN didn't result in anything usable from the native world. Possibly the clue I'm looking for is just drowned under all the .NET related posts. Do you have a hint where I should look at to do the right thing using native C++?
Wednesday, March 21, 2012 7:04 AM
Here's the root: Windows Automation API: UI Automation
If you find the .Net UIA docs they include a link to the native in a big yellow box.
Also take a look at the Input Hosting Manager and the Touch Keyboard. It is targeted at Windows 8, but the general concepts are valid for all Windows versions.