Jump to content

WinDismissDlg: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
 
Line 5: Line 5:


==Parameters==
==Parameters==
;hwndDlg (HWND) - input
;hwndDlg ([[HWND]]) - input:Dialog-window handle.
:Dialog-window handle.  
;usResult (ULONG) - input:Reply value.
:Returned to the caller of [[WinProcessDlg]] or [[WinDlgBox]].


;usResult (ULONG) - input
==Returns==
:Reply value.
;rc (BOOL) - returns:Dialog-dismissed indicator.
:Returned to the caller of WinProcessDlg or WinDlgBox.  
::TRUE - Dialog successfully dismissed
::FALSE - Dialog not successfully dismissed.


==Returns==
;rc (BOOL) - returns
:Dialog-dismissed indicator.
:;TRUE
::Dialog successfully dismissed
:;FALSE
::Dialog not successfully dismissed.
==Errors==
==Errors==
Possible returns from WinGetLastError
Possible returns from WinGetLastError
;PMERR_INVALID_HWND (0x1001)
:PMERR_INVALID_HWND (0x1001): An invalid window handle was specified.
:An invalid window handle was specified.
 
==Remarks==
==Remarks==
This function is required to complete the processing of a modal dialog window and is called from its dialog procedure. It is made implicitly if the dialog procedure passes a WM_COMMAND message to WinDefDlgProc or if a WM_QUIT message is encountered during WinProcessDlg or WinGetDlgMsg.
This function is required to complete the processing of a modal dialog window and is called from its dialog procedure. It is made implicitly if the dialog procedure passes a WM_COMMAND message to WinDefDlgProc or if a WM_QUIT message is encountered during WinProcessDlg or WinGetDlgMsg.
Line 36: Line 30:


Note: This function can be made from a modeless dialog window, although this is not necessary as there is no internal message processing loop. If it is called, the dialog window is hidden and it is the responsibility of the application to destroy the dialog window, if required.
Note: This function can be made from a modeless dialog window, although this is not necessary as there is no internal message processing loop. If it is called, the dialog window is hidden and it is the responsibility of the application to destroy the dialog window, if required.
==Example Code==
==Example Code==
This example shows a typical dialog procedure that has both an OK and a Cancel button. If the user selects the OK button, WinDismissDlg is called with a result value of TRUE. If the user selects the Cancel button, WinDismissDlg is called with a result value of FALSE.
This example shows a typical dialog procedure that has both an OK and a Cancel button. If the user selects the OK button, WinDismissDlg is called with a result value of TRUE. If the user selects the Cancel button, WinDismissDlg is called with a result value of FALSE.
Line 60: Line 55:
             return (0L);
             return (0L);
     }
     }
</pre>
</pre>
Definition
Definition
<pre>
<pre>
#define INCL_WINDIALOGS /* Or use INCL_WIN, INCL_PM, Also in COMMON section */
#define INCL_WINDIALOGS /* Or use INCL_WIN, INCL_PM, Also in COMMON section */
#include <os2.h>
#include <os2.h>
Line 76: Line 66:


rc = WinDismissDlg(hwndDlg, usResult);
rc = WinDismissDlg(hwndDlg, usResult);
</pre>
</pre>



Latest revision as of 01:39, 12 December 2023

This function hides the modeless dialog window, and causes WinProcessDlg or WinDlgBox to return.

Syntax

WinDismissDlg(hwndDlg, usResult)

Parameters

hwndDlg (HWND) - input
Dialog-window handle.
usResult (ULONG) - input
Reply value.
Returned to the caller of WinProcessDlg or WinDlgBox.

Returns

rc (BOOL) - returns
Dialog-dismissed indicator.
TRUE - Dialog successfully dismissed
FALSE - Dialog not successfully dismissed.

Errors

Possible returns from WinGetLastError

PMERR_INVALID_HWND (0x1001): An invalid window handle was specified.

Remarks

This function is required to complete the processing of a modal dialog window and is called from its dialog procedure. It is made implicitly if the dialog procedure passes a WM_COMMAND message to WinDefDlgProc or if a WM_QUIT message is encountered during WinProcessDlg or WinGetDlgMsg.

This function hides the dialog window, and re-enables any windows that were disabled by WinProcessDlg or WinGetDlgMsg.

If the dialog window needs to be processed through WinProcessDlg, after being dismissed, the FF_DLGDISMISSED flag must be reset.

It does not destroy the dialog window; WinDestroyWindow must be issued to destroy the dialog window when it is no longer needed. However, WinDlgBox destroys the dialog window it creates, when the dialog window is dismissed by the use of this function.

This function can be issued during the processing of the the WM_INITDLG (Default Dialogs) message.

Note: This function can be made from a modeless dialog window, although this is not necessary as there is no internal message processing loop. If it is called, the dialog window is hidden and it is the responsibility of the application to destroy the dialog window, if required.

Example Code

This example shows a typical dialog procedure that has both an OK and a Cancel button. If the user selects the OK button, WinDismissDlg is called with a result value of TRUE. If the user selects the Cancel button, WinDismissDlg is called with a result value of FALSE.

#define INCL_WINDIALOGS   /* Window Dialog Mgr Functions  */
#define  ID_ENTER  101;
#define  ID_CANCEL 102;
#include <os2.h>

MPARAM   mpParam1;
HWND    hwnd;

case WM_COMMAND:
     switch (SHORT1FROMMP(mpParam1))
     {
       /* OK button selected */
       case ID_ENTER:
            WinDismissDlg(hwnd, TRUE);
            return (0L);

       /* Cancel button selected */
       case ID_CANCEL:
            WinDismissDlg(hwnd, FALSE);
            return (0L);
     }

Definition

#define INCL_WINDIALOGS /* Or use INCL_WIN, INCL_PM, Also in COMMON section */
#include <os2.h>

HWND     hwndDlg;   /*  Dialog-window handle. */
ULONG    usResult;  /*  Reply value. */
BOOL     rc;        /*  Dialog-dismissed indicator. */

rc = WinDismissDlg(hwndDlg, usResult);

Related Functions

  • WinCreateDlg
  • WinDefDlgProc
  • WinDlgBox
  • WinGetDlgMsg
  • WinLoadDlg
  • WinProcessDlg

Related Messages

  • WM_COMMAND
  • WM_QUIT
  • WM_INITDLG (Default Dialogs)