Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяемая приложением функция обратного вызова, используемая с семействами функций 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 вложенном диалоговом окне.
Следующие сообщения являются исключениями из общих правил, описанных выше. Дополнительные сведения о семантике возвращаемого значения см. в документации по конкретному сообщению.
- WM_CHARTOITEM
- WM_COMPAREITEM
- WM_CTLCOLORBTN
- WM_CTLCOLORDLG
- WM_CTLCOLOREDIT
- WM_CTLCOLORLISTBOX
- WM_CTLCOLORSCROLLBAR
- WM_CTLCOLORSTATIC
- WM_INITDIALOG
- WM_QUERYDRAGICON
- WM_VKEYTOITEM
Замечания
Замечание
Параметры определяются в заголовке без имен: typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM); Поэтому блок синтаксиса перечисляет их как unnamedParam1 - unnamedParam4. Вы можете присвоить этим параметрам любое имя в приложении. Однако они обычно называются как показано в описаниях параметров.
Процедуру диалогового окна следует использовать только в том случае, если для диалогового окна используется класс диалогового окна. Это класс по умолчанию и используется, если явный класс не указан в шаблоне диалогового окна. Хотя процедура диалогового окна аналогична процедуре окна, она не должна вызывать функцию DefWindowProc для обработки нежелательных сообщений. Нежелательные сообщения обрабатываются внутренне процедурой диалогового окна.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 2000 Профессиональный [только классические приложения] |
| минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
| целевая платформа | Windows |
| Header | winuser.h (включая Windows.h) |
См. также
Концептуальный
Справочные материалы