After googling around, the penny is dropping I think: are you targeting the smartphone device
(small screen, two "softkeys" under the screen
)? If so, the appearance is controlled through the smartphone menubar control... I've never used that, but there's good information in MSDN, and examples in there or the Programming Windows CE .net book by Doug Boling.
By soft key, if you mean one of the hardware buttons on a WinCE device then these are controllable using a variety of mechanisms.
if they're "application" buttons, then these by default launch an application associated with them in the registry key HKLM\Software\Microsoft\Shell\Keys\, under 40C1 through to 40CF for 1 to 15.
You can stop the application launch behaviour by using the API call:
SHSetAppKeyWndAssoc
(BYTE bVk, HWND hwnd
) with C1 as the byte for app key 1, and hwnd the hwnd of the window you wish to handle the message. To reset behaviour, call with a hwnd of null. Your window will receive the virtual keycode as a WM_KEYDOWN and WM_KEYUP message.
Another more generic way of mapping hotkeys is to use the API Call:
BOOL RegisterHotKey
(HWND hWnd, int id, UINT fsModifiers, UINT vk
)
Check the API documentation for this as it's a little more involved, especially in its side effects if used wildly, but it might be what you need.
As I say, if you're using smartphone ignore the majority of this