Поделиться через


Функция обратного вызова DLGPROC (winuser.h)

Определяемая приложением функция обратного вызова, используемая с семействами функций CreateDialog и DialogBox . Он обрабатывает сообщения, отправленные в модальное или безрежимное диалоговое окно. Тип DLGPROC определяет указатель на эту функцию обратного вызова. DialogProc — это заполнитель для имени определяемой приложением функции.

Синтаксис

DLGPROC Dlgproc;

INT_PTR Dlgproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

Параметры

unnamedParam1

Тип: HWND

Дескриптор диалогового окна. Обычно этот параметр называется hWnd.

unnamedParam2

Тип: UINT

Сообщение. Обычно этот параметр называется uMsg.

unnamedParam3

Тип: WPARAM

Дополнительные сведения о сообщении. Обычно этот параметр называется wParam.

unnamedParam4

Тип: LPARAM

Дополнительные сведения о сообщении. Обычно этот параметр называется lParam.

Возвращаемое значение

Тип: INT_PTR

Как правило, процедура диалогового окна должна возвращать ЗНАЧЕНИЕ TRUE , если она обработала сообщение и FALSE , если она не была. Если процедура диалогового окна возвращает значение FALSE, диспетчер диалогов выполняет операцию диалога по умолчанию в ответ на сообщение.

Если процедура диалогового окна обрабатывает сообщение, требующее определенного возвращаемого значения, процедура диалогового окна должна задать требуемое возвращаемое значение путем вызова SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) непосредственно перед возвратом TRUE. Обратите внимание, что необходимо вызвать SetWindowLong сразу перед возвратом TRUE; это может привести к перезаписи значения DWL_MSGRESULT вложенном диалоговом окне.

Следующие сообщения являются исключениями из общих правил, описанных выше. Дополнительные сведения о семантике возвращаемого значения см. в документации по конкретному сообщению.

Замечания

Замечание

Параметры определяются в заголовке без имен: typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM); Поэтому блок синтаксиса перечисляет их как unnamedParam1 - unnamedParam4. Вы можете присвоить этим параметрам любое имя в приложении. Однако они обычно называются как показано в описаниях параметров.

Процедуру диалогового окна следует использовать только в том случае, если для диалогового окна используется класс диалогового окна. Это класс по умолчанию и используется, если явный класс не указан в шаблоне диалогового окна. Хотя процедура диалогового окна аналогична процедуре окна, она не должна вызывать функцию DefWindowProc для обработки нежелательных сообщений. Нежелательные сообщения обрабатываются внутренне процедурой диалогового окна.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Windows
Header winuser.h (включая Windows.h)

См. также

Концептуальный

Диалоговые окна

WM_INITDIALOG

Справочные материалы

CreateDialog

CreateDialogIndirect

CreateDialogIndirectParam

CreateDialogParam

DefWindowProc

Диалоговое окно

DialogBoxIndirect

DialogBoxIndirectParam

DialogBoxParam

SetFocus