Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
4/8/2010

Windows Mobile provides support for soft keys. Soft keys display menus and commands when you press corresponding hardware buttons on Windows Mobile devices. The soft keys are located on the soft key bar at the bottom of the screen.

Note:
Beginning with Windows Mobile 6.5.3, soft keys are replaced by touchable tiles on Windows Mobile Professional phones.

The right soft key displays a menu and the left soft key provides access to the most common action based on the content that is currently displayed or selected. All Microsoft applications use soft keys on Windows Mobile. Support is provided for customizing soft keys in the following ways.

Soft keys support many toolbar messages, listed below. For more information about these messages, see Toolbar Controls Messages.

Toolbar Message Windows Mobile Professional or Windows Mobile Classic Windows Mobile Standard Description

TB_ADDBITMAP

X

 

Causes the softkey bar to change to a toolbar.

TB_ADDBUTTONS

X

 

Causes the softkey bar to change to a toolbar if the total number of buttons exceeds 2.

TB_ADDSTRING

X

 

 

TB_AUTOSIZE

X

X

Does not do anything, but returns 1.

TB_BUTTONCOUNT

X

 

 

TB_BUTTONSTRUCTSIZE

X

 

On Windows Mobile Classic, passing the old TBBUTTON struct size in wParam (which does not contain dwData or iString) to a softkey bar with 0 buttons will cause the softkey bar to change to a toolbar.

TB_CHANGEBITMAP

X

X

Does not do anything, but returns 0 to indicate false or error.

TB_CHECKBUTTON

X

X

Does not draw a visual check mark but the state is saved.

TB_COMMANDTOINDEX

X

X

 

TB_DELETEBUTTON

X

 

Remaining buttons are shuffled down (i.e. if button at index 0 is deleted then button at index 1 moves to index 0).

TB_ENABLEBUTTON

X

X

 

TB_GETBITMAP

X

X

Does not do anything, but returns 0 to indicate false or error.

TB_GETBITMAPFLAGS

X

X

Does not do anything, but returns 0 to indicate false or error.

TB_GETBUTTON

X

X

 

TB_GETBUTTONINFO

X

X

 

TB_GETBUTTONSIZE

X

X

 

TB_GETBUTTONTEXT

X

 

 

TB_GETDISABLEDIMAGELIST

X

X

Does not do anything, but returns 0 to indicate false or error.

TB_GETIMAGELIST

X

X

Does not do anything, but returns 0 to indicate false or error.

TB_GETITEMRECT

X

X

 

TB_GETRECT

X

X

 

TB_GETROWS

X

X

Does not do anything, but returns 1.

TB_GETSTATE

X

X

 

TB_GETSTYLE

X

X

Softkeys always return (TBSTYLE_LIST | TBSTYLE_TRANSPARENT | TBSTYLE_FLAT | CCS_BOTTOM | CCS_NOMOVEY | CCS_NORESIZE)

TB_GETTEXTROWS

X

X

Does not do anything, but returns 1.

TB_GETTOOLTIPS

X

X

Does not do anything, but returns 0 to indicate false or error.

TB_HIDEBUTTON

X

X

 

TB_HIGHLIGHTBUTTON

X

X

Does not do anything, but returns 1.

TB_INDETERMINATE

X

X

Does not do anything, but returns 1.

TB_INSERTBUTTON

X

 

Causes the softkey bar to change to a toolbar if the total number of buttons exceeds 2.

TB_ISBUTTONCHECKED

X

X

 

TB_ISBUTTONENABLED

X

X

 

TB_ISBUTTONHIDDEN

X

X

 

TB_ISBUTTONHIGHLIGHTED

X

X

Does not do anything, but returns 1.

TB_ISBUTTONINDETERMINATE

X

X

Does not do anything, but returns 1.

TB_ISBUTTONPRESSED

X

X

Does not do anything, but returns 1.

TB_LOADIMAGES

X

 

Causes the softkey bar to change to a toolbar.

TB_PRESSBUTTON

X

X

Does not do anything, but returns 1.

TB_REPLACEBITMAP

X

X

Does not do anything, but returns 1.

TB_SETBITMAPSIZE

X

 

Causes the softkey bar to change to a toolbar.

TB_SETBUTTONINFO

X

X

TBIF_STYLE styles are ignored. On Windows Mobile Professional and Windows Mobile Classic, they are saved in case the softkey bar changes to a toolbar. Setting an image or separator will cause the softkey bar to change to a toolbar.

TB_SETBUTTONSIZE

X

X

Does not do anything, but returns 1.

TB_SETBUTTONWIDTH

X

X

Does not do anything, but returns 1.

TB_SETCMDID

X

X

 

TB_SETDISABLEDIMAGELIST

X

 

Causes the softkey bar to change to a toolbar

TB_SETDRAWTEXTFLAGS

X

X

Does not do anything, but returns 1.

TB_SETIMAGELIST

X

 

Causes the softkey bar to change to a toolbar

TB_SETINDENT

X

X

Does not do anything, but returns 1.

TB_SETMAXTEXTROWS

X

 

Causes the softkey bar to change to a toolbar if iMaxRows (wParam) is larger than 1, otherwise TRUE is returned and nothing is changed.

TB_SETPARENT

X

 

 

TB_SETROWS

X

 

Causes the softkey bar to change to a toolbar if cRows (HIWORD of wParam) is larger than 1.

TB_SETSTATE

X

X

 

TB_SETSTYLE

X

 

Causes the softkey bar to change to a toolbar if dwStyle (lParam) has the TBSTYLE_WRAPABLE or TBSTYLE_CUSTOMERASE, otherwise 1 is returned and nothing is changed.

TB_SETTOOLTIPS

X

X

Does not do anything, but returns 1.

In This Section

Soft Key Virtual Key Codes

Provides a table that shows the virtual key (VK) codes associated with each soft key.

How to Create a Soft Key Bar

Describes how to create a soft key bar and provides a code example.

How to Obtain a Handle to a Soft Key Menu

Describes how to use messages to obtain handles to soft key menus and provides code examples.

Customizing Default Values for Soft Keys on the Home Screen

Describes how to customize the left and right soft keys, SK1 and SK2, on the Home screen for Windows Mobile Standard, and Windows Mobile Classic.

Localize the Soft Key Label

Describes how to provide labels in multiple languages by using the registry.

Programmatically Refresh the Soft Key Label

Describes how to force the soft key to refresh to display update information from the registry.

Dynamic Assignment of SK1

Demonstrates how to dynamically change the left soft key to correspond to the most recent event on the device.

Related Sections

Soft Key and Menu Guidelines

Provides guidelines and best practices for working with soft keys.

User Interface

Provides information on the ways that a user can interact with a Windows Mobile device and its applications.