A version of this page is also available for

Windows Embedded CE 6.0 R3


This function destroys a modal dialog box, causing the system to end any processing for the dialog box.


BOOL EndDialog( 
  HWND hDlg, 
  int nResult


  • hDlg
    [in] Handle to the dialog box to be destroyed.
  • nResult
    [in] Specifies the value to be returned to the application from the function that created the dialog box.

Return Value

Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.


Dialog boxes created by the DialogBox, DialogBoxParam, DialogBoxIndirect, and DialogBoxIndirectParam functions must be destroyed using the EndDialog function. An application calls EndDialog from within the dialog box procedure; the function must not be used for any other purpose.

A dialog box procedure can call EndDialog at any time, even during the processing of the WM_INITDIALOG message. If your application calls the function while WM_INITDIALOG is being processed, the dialog box is destroyed before it is shown and before the input focus is set.

EndDialog does not destroy the dialog box immediately. Instead, it sets a flag and allows the dialog box procedure to return control to the system. The system checks the flag before attempting to retrieve the next message from the application queue. If the flag is set, the system ends the message loop, destroys the dialog box, and uses the value in nResult as the return value from the function that created the dialog box.


Header winuser.h
Library Dlgmgr.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also


Dialog Boxes Functions