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


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

Определяемая приложением функция обратного вызова, которую система вызывает при создании и инициализации страницы свойств.

Синтаксис

PFNPROPSHEETCALLBACK Pfnpropsheetcallback;

int Pfnpropsheetcallback(
  HWND unnamedParam1,
  UINT unnamedParam2,
  LPARAM unnamedParam3
)
{...}

Параметры

unnamedParam1

Тип: HWND

Дескриптор страницы свойств. Этот параметр обычно называется hWnd.

unnamedParam2

Тип: UINT

Полученное сообщение. Этот параметр обычно называется uMsg.

Этот параметр является одним из следующих значений.

Значение Значение
PSCB_INITIALIZED (1)
Указывает, что страница свойств инициализируется. Значение lParam (unnamedParam3) равно нулю для этого сообщения.
PSCB_PRECREATE (2)
Указывает, что страница свойств будет создана. Параметр hWnd (unnamedParam1) имеет значение NULL, а параметр lParam (unnamedParam3) — адрес шаблона диалогового окна в памяти. Этот шаблон имеет форму структуры DLGTEMPLATE или DLGTEMPLATEEX , за которой следует одна или несколько структур DLGITEMTEMPLATE . Это сообщение неприменимо, если используется стиль мастера Aero (PSH_AEROWIZARD).
PSCB_BUTTONPRESSED (3)

Версия 6.0 и более поздняя. Указывает, что пользователь нажал кнопку в диалоговом окне страницы свойств. Чтобы включить это, укажите PSH_USECALLBACK в PROPSHEETHEADER.dwFlags и укажите имя этой функции обратного вызова в PROPSHEETHEADER.pfnCallback. Значение lParam (Arg3) является одним из следующих. Обратите внимание, что при использовании стиля мастера Aero (PSH_AEROWIZARD) допустимо только PSBTN_CANCEL.

Активная кнопка Значение lParam
ОК PSBTN_OK
Отменить PSBTN_CANCEL
Применить PSBTN_APPLYNOW
Закрыть PSBTN_FINISH

Обратите внимание, что Comctl32.dll версии 6 и более поздних не распространяются. Чтобы использовать эти версии Comctl32.dll, укажите конкретную версию в манифесте. Дополнительные сведения о манифестах см. в разделе Включение визуальных стилей.

unnamedParam3

Тип: LPARAM

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

Значение этого значения зависит от параметра uMsg (unnamedParam2):

  • Если uMsg PSCB_INITIALIZED или PSCB_BUTTONPRESSED, значение этого параметра равно нулю.

  • Если uMsg PSCB_PRECREATE, этот параметр будет указателем на структуру DLGTEMPLATE или DLGTEMPLATEEX , описывающую диалоговое окно страницы свойств. Проверьте сигнатуру структуры, чтобы определить тип. Если сигнатура равна 0xFFFF то структура является расширенным шаблоном диалога, в противном случае структура является стандартным шаблоном диалога. В следующем примере показано, как это сделать.

    if (uMsg == PSCB_PRECREATE) 
    {
         if (lParam)
         {
              DLGTEMPLATE *pDlgTemplate;
              DLGTEMPLATEEX *pDlgTemplateEx;
    
              pDlgTemplateEx = (DLGTEMPLATEEX *)lParam;  
              if (pDlgTemplateEx->signature == 0xFFFF)
              {
                   // pDlgTemplateEx points to an extended  
                   // dialog template structure.
              }
              else
              {
                   // This is a standard dialog template
                   //  structure.
                   pDlgTemplate = (DLGTEMPLATE *)lParam;
              }
         }    
    }
    

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

Тип: int

Возвращает ноль.

Комментарии

Чтобы включить функцию обратного вызова PropSheetProc , используйте структуру PROPSHEETHEADER при вызове функции PropertySheet для создания страницы свойств. Используйте член pfnCallback , чтобы указать адрес функции обратного вызова и установить флаг PSP_USECALLBACK в элементе dwFlags .

PropSheetProc — это заполнитель для имени функции, определяемой приложением. Тип PFNPROPSHEETCALLBACK — это адрес функции обратного вызова PropSheetProc .

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header prsht.h