- 0 2.0
Shows or hides the on-screen keyboard. (Not supported in Japanese version.)
This function is provided only for compatibility with version 1.0 of the Pen
API, and will not be supported in future versions. It is not supported for
32-bit applications. Applications should interface directly with the on-screen
BOOL ShowKeyboard( HWND hwnd, UINT wCommand, LPPOINT lppt, LPSKBINFO lpSKBInfo )
Handle of window invoking the on-screen keyboard.
A show request and optional keypad. The values for the show requests are
listed in the "Comments" section below.
Address of a POINT
structure containing the keyboard position in screen coordinates. If NULL,
the keyboard appears centered on the display.
Address of an SKBINFO
structure to be filled with values for the current keyboard. This parameter
is ignored if NULL. If the hwnd
member of the SKBINFO
structure is NULL, no on-screen keyboard has been loaded.
Returns TRUE if successful; otherwise FALSE.
Any user action on the keyboard itself overrides the function requests. For
example, if the user closes the on-screen keyboard, the keyboard becomes
unregistered for all windows in all applications. If the user minimizes the keyboard,
the active SKBINFO
structure is changed to reflect the new state.
tracks registration information for up to 20 window handles. If one
application displays the keyboard and then another one does the same thing, both
applications must request that the keyboard be hidden before it actually disappears.
The following SKB_ requests can be specified in the wCommand
||Hides the on-screen keyboard. This request may not actually hide the keyboard
if another application is also using it. The command decrements the use count
for the keyboard. SKB_HIDE automatically loads the on-screen keyboard if it is
not already present.
||Returns the current state of the keyboard pointed to
by the lpSKBInfo parameter without invoking a new keyboard state. This command does not
automatically load the on-screen keyboard.
||Shows the on-screen keyboard in a restored state at
the most recently used screen location. This command increments a window-use
count. SKB_SHOW automatically loads the on-screen keyboard if it is not present.
The SKB_SHOW command in the wCommand
parameter can be combined using the bitwise-OR operator with any of the
command or keypad requests listed in the following tables:
||Centers the keyboard on the display. This command
has higher priority than SKB_MOVE.
||Displays the on-screen keyboard in a minimized state. This command can be used
with SKB_CENTER or SKB_MOVE. If it is used with SKB_MOVE, the location
specified will be used when the keyboard is restored.
||Moves the keyboard to the location specified by the lppt parameter. If lppt is NULL, the keyboard is centered on the screen. If it is not NULL, lppt specifies a pointer to the x and y screen coordinates of the upper-left
corner of the restored keyboard.
The following keypad requests can be used with SKB_SHOW in the wCommand
parameter. The SKB_BASIC, SKB_FULL, and SKB_NUMPAD constants can not be
combined with the OR operator:
||Switches the keyboard to a partial keyboard with no extended keys.
||Switches the keyboard to the full 101-key display.
||Switches the keyboard to a partial keyboard consisting only of ESC, TAB,
SHIFT, and the numeric keypad.
The following three bitmaps are provided for owner-draw push buttons that can
be used to invoke the on-screen keyboard. The application must process
WM_DRAWITEM and other button-related code. On-screen keyboard push buttons should
behave the same way as other standard buttons (for example, the Minimize button) and
take the appropriate action when a button-up message is received following a
||Push button is up.
||Push button is down.
||Push button is disabled.
The up bitmap, for example, can be loaded as shown in the following code
HANDLE hDLL = GetSystemMetrics( SM_PENWINDOWS );
HBITMAP hBitmap = LoadBitmap( hDLL,
The application must call the Windows DeleteObject
function to delete each bit-map handle returned by the Windows LoadBitmap
The button should be left in the up state after it is released. If the user
closes the keyboard and the buttons are up, they will still be up the next time
the keyboard is opened. The following code sample retrieves the current keyboard
and restores the current state:
if (ShowKeyboard( hwnd, SKB_SHOW, NULL, NULL)) // Nonzero: no error.
. // Perform some tasks.
ShowKeyboard( hwnd, SKB_HIDE, NULL, NULL );
ErrorMsg( "Unable to use Screen Keyboard" );
The following code sample moves the keyboard and then puts it back into its
WORD wCommand = SKB_SHOW | SKB_MOVE;
pnt.x = wSKBLeft; // Initialize point.
pnt.y = wSKBTop;
// Show the keyboard.
ShowKeyboard( hwnd, wCommand, &pnt, &skbinfo );
// Now restore the keyboard.
wCommand = SKB_SHOW | SKB_MOVE |
(skbinfo.fMinimized ? SKB_MINIMIZED : 0);
wCommand = SKB_HIDE;
ShowKeyboard( hwnd, wCommand, (LPPOINT)(&skbinfo.rect), NULL) ;
- Software for developers
Software for Android Developers
- More information resources
Unix Manual Pages