SHDoneButton (Windows CE 5.0)

Windows CE 5.0
Send Feedback

This function is provided for applications that need to dynamically show or hide the OK button based on the state of the application.

Syntax

BOOL SHDoneButton(
  HWND hwndRequester,
  DWORD dwState
);

Parameters

hwndRequester
[in] Handle to the top-level window requesting the Done button.
dwState
[in] Specifies the button state. The following table shows the possible states values for this parameter.
StateDescription
SHDB_SHOWAdds WS_EX_CAPTIONOKBTN to hwndRequester. Next time this window becomes the foreground window, the Done button will appear. Note that hwndRequester cannot be set to the WS_CAPTION style. For more information on WS_EX_CAPTIONOKBTN and WS_CAPTION, see Non-client Area Styles.
SHDB_HIDERemoves the WS_EX_CAPTIONOKBTN from hwndRequester. The Done button will not appear the next time this window becomes the foreground window.
SHDB_SHOWCANCELEnables the Cancel [x] button to have cancel semantics. SHDB_SHOWCANCEL shows the [x] button but makes it send a WM_COMMAND or IDCANCEL when pressed.

Return Values

This function returns TRUE if it is successful and FALSE if it fails.

Remarks

Typically, the Done button is managed by the shell, and showing or hiding the OK button happens automatically. A top-level window that needs the Done button to appear should use the WS_EX_CAPTIONOKBTN window style.

To make the OK button appear, ensure that your window does not have either the WS_CAPTION or WS_CHILD styles.

Whenever the foreground window changes, the shell checks the style bits of the window to determine if the OK button should appear in the taskbar. The OK button takes precedence over a menu bar added to the taskbar.

To suppress the OK button, use the WS_NONAVDONEBUTTON style.

Windows Mobile Remarks

Typically, the Done button (the OK button that appears in the upper-right corner of the screen) is managed by the shell, and showing or hiding the OK button happens automatically. A top-level window that needs the Done button to appear should use the following window styles:

  • Must have WS_EX_CAPTIONOKBTN
  • Must not have WS_CAPTION
    WS_CHILD

Note   WS_CAPTION is defined as (WS_BORDER
WS_DLGFRAME). To make the OK button appear, you must ensure that your window does not have either of these styles.

Whenever the foreground window changes, the shell checks the style bits of the window to determine if the OK button should appear in the navigation bar.

To suppress the OK button, use the WS_NONAVDONEBUTTON style.

Code Example

The following code example demonstrates how to use SHDoneButton.

Note   To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
// Show or hide a window's Done button.
BOOL SHDoneButtonExample(HWND hWnd, BOOL fShow) 
{

    if (fShow)
    {
        // Show the Done button when the window moves to the foreground.
        return SHDoneButton(hWnd, SHDB_SHOW);
    }

    else

    {
        // Hide the Done button when the window moves from the foreground.
        return SHDoneButton(hWnd, SHDB_HIDE);
    }

}

Requirements

Pocket PC: Pocket PC 2000 and later
Smartphone: Smartphone 2002 and later
OS Versions: Windows CE 3.0 and later
Header: aygshell.h
Library: aygshell.lib

See Also

Window and Message Box Styles


Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.


Show: