windows_programming_notes.nbk: Home | Index | Next Page: DispatchMessage | Previous Page: DialogBoxParam


 DialogProc

The DialogProc function is an application-defined callback function used with the CreateDialog and DialogBox families of functions. It processes messages sent to a modal or modeless dialog box. The DLGPROC type defines a pointer to this callback function. DialogProc is a placeholder for the application-defined function name.

Syntax

    INT_PTR CALLBACK DialogProc(  
        HWND hwndDlg,
        UINT uMsg,
        WPARAM wParam,
        LPARAM lParam
    );

Parameters

Return Value

Typically, the dialog box procedure should return TRUE if it processed the message, and FALSE if it did not. If the dialog box procedure returns FALSE, the dialog manager performs the default dialog operation in response to the message.

If the dialog box procedure processes a message that requires a specific return value, the dialog box procedure should set the desired return value by calling SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) immediately before returning TRUE. Note that you must call SetWindowLong immediately before returning TRUE; doing so earlier may result in the DWL_MSGRESULT value being overwritten by a nested dialog box message.

The following messages are exceptions to the general rules stated above. Consult the documentation for the specific message for details on the semantics of the return value.

Remarks

You should use the dialog box procedure only if you use the dialog box class for the dialog box. This is the default class and is used when no explicit class is specified in the dialog box template. Although the dialog box procedure is similar to a window procedure, it must not call the DefWindowProc function to process unwanted messages. Unwanted messages are processed internally by the dialog box window procedure.

Function Information


windows_programming_notes.nbk: Home | Index | Next Page: DispatchMessage | Previous Page: DialogBoxParam


Notebook exported on Monday, 7 July 2008, 18:56:50 PM Eastern Daylight Time