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


Страницы свойств (MFC)

Страницы свойств отображают текущие значения определенных свойств элемента управления OLE в настраиваемом графическом интерфейсе для просмотра и редактирования, поддерживая механизм сопоставления данных на основе обмена данными диалогового окна (DDX).

Этот механизм сопоставления данных сопоставляет элементы управления свойствами с отдельными свойствами элемента управления OLE. Значение свойства элемента управления отражает состояние или содержимое элемента управления страницы свойств. Сопоставление между элементами управления страницы свойств и свойствами определяется вызовами функций DDP_ в функции-члене страницы DoDataExchange свойств. Ниже приведен список DDP_ функций, которые обмениваются данными, введенными с помощью страницы свойств элемента управления:

Передача данных страницы свойств

Имя Описание
DDP_CBIndex Связывает индекс выбранной строки в поле со списком со свойством элемента управления.
DDP_CBString Связывает выбранную строку в поле со списком со свойством элемента управления. Выбранная строка может начинаться с той же буквы, что и значение свойства, но не обязательно полностью соответствовать ему.
DDP_CBStringExact Связывает выбранную строку в поле со списком со свойством элемента управления. Выбранная строка и строковое значение свойства должны совпадать точно.
DDP_Check Связывает флажок на странице свойств элемента управления со свойством элемента управления.
DDP_LBIndex Связывает индекс выбранной строки в поле списка со свойством элемента управления.
DDP_LBString Связывает выбранную строку в поле списка со свойством элемента управления. Выбранная строка может начинаться с той же буквы, что и значение свойства, но не обязательно полностью совпадать с ним.
DDP_LBStringExact Связывает выбранную строку в поле списка со свойством элемента управления. Выбранная строка и строковое значение свойства должны совпадать точно.
DDP_PostProcessing Завершает передачу значений свойств из элемента управления.
DDP_Radio Связывает группу переключателей на странице свойств элемента управления со свойством элемента управления.
DDP_Text Связывает элемент управления на странице свойств элемента управления со свойством элемента управления. Эта функция обрабатывает несколько различных типов свойств, таких как double, shortBSTR и long.

Дополнительные сведения о DoDataExchange страницах функций и свойств см. в статье ActiveX Controls: Property Pages.

Ниже приведен список макросов, используемых для создания страниц свойств и управления ими для элемента управления OLE:

Страницы свойств

Имя Описание
BEGIN_PROPPAGEIDS Начинает список идентификаторов страниц свойств.
END_PROPPAGEIDS Заканчивается список идентификаторов страниц свойств.
PROPPAGEID Объявляет страницу свойств класса элемента управления.

DDP_CBIndex

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы синхронизировать значение целочисленного свойства с индексом текущего выбора в поле со списком на странице свойств.

void AFXAPI DDP_CBIndex(
    CDataExchange* pDX,
    int id,
    int& member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления со списком, связанного с свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления, которое необходимо обменять с элементом управления со списком, указанным идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_CBIndex вызовом функции.

Требования

Заголовок afxctl.h

DDP_CBString

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы синхронизировать значение строкового свойства с текущим выбором в поле со списком на странице свойств.

void AFXAPI DDP_CBString(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления со списком, связанного с свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления, которое необходимо обменять со строкой поля со списком, указанной идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_CBString вызовом функции.

Требования

Заголовок afxctl.h

DDP_CBStringExact

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы синхронизировать значение строкового свойства, которое точно соответствует текущему выбору в поле со списком на странице свойств.

void AFXAPI DDP_CBStringExact(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления со списком, связанного с свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления, которое необходимо обменять со строкой поля со списком, указанной идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_CBStringExact вызовом функции.

Требования

Заголовок afxctl.h

DDP_Check

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы синхронизировать значение свойства с соответствующим элементом управления флажком страницы свойств.

void AFXAPI DDP_Check(
    CDataExchange* pDX,
    int id,
    int & member,
    LPCSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления флажка, связанный со свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления для обмена с элементом управления флажок, заданным идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_Check вызовом функции.

Требования

Заголовок afxctl.h

DDP_LBIndex

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы синхронизировать значение целочисленного свойства с индексом текущего выбора в поле списка на странице свойств.

void AFXAPI DDP_LBIndex(
    CDataExchange* pDX,
    int id,
    int& member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления списком, связанный со свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления для обмена строкой списка, указанной идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_LBIndex вызовом функции.

Требования

Заголовок afxctl.h

DDP_LBString

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы синхронизировать значение строкового свойства с текущим выбором в поле списка на странице свойств.

void AFXAPI DDP_LBString(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления списком, связанный со свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления для обмена строкой списка, указанной идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_LBString вызовом функции.

Требования

Заголовок afxctl.h

DDP_LBStringExact

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы синхронизировать значение строкового свойства, которое точно соответствует текущему выбору в поле списка на странице свойств.

void AFXAPI DDP_LBStringExact(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления списком, связанный со свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления для обмена строкой списка, указанной идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_LBStringExact вызовом функции.

Требования

Заголовок afxctl.h

DDP_PostProcessing

Вызовите эту функцию в функции страницы DoDataExchange свойств, чтобы завершить передачу значений свойств со страницы свойств в элемент управления при сохранении значений свойств.

void AFXAPI DDP_PostProcessing(CDataExchange * pDX);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

Замечания

Эта функция должна вызываться после завершения всех функций обмена данными. Например:

void CMyAxPropPage::DoDataExchange(CDataExchange *pDX)
{
   DDP_Text(pDX, IDC_POSITIONEDIT, m_NeedlePosition, _T("NeedlePosition"));
   DDX_Text(pDX, IDC_POSITIONEDIT, m_NeedlePosition);
   DDV_MinMaxInt(pDX, m_NeedlePosition, 0, 3);
   DDP_PostProcessing(pDX);
}

Требования

Заголовок afxctl.h

DDP_Radio

Вызовите эту функцию в функции элемента управления DoPropExchange , чтобы синхронизировать значение свойства с соответствующим элементом управления переключателем страницы свойств.

void AFXAPI DDP_Radio(
    CDataExchange* pDX,
    int id,
    int & member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления переключателем, связанный со свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления, которое необходимо обменять с элементом управления переключателем, указанным идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_Radio вызовом функции.

Требования

Заголовок afxctl.h

DDP_Text

Вызовите эту функцию в функции элемента управления DoDataExchange , чтобы синхронизировать значение свойства с соответствующим элементом управления страницы свойств.

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    BYTE & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    int & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    UINT & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    long & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    DWORD & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    float & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    double & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    CString & member,
    LPCTSTR pszPropName);

Параметры

PDX
Указатель на CDataExchange объект. Структура предоставляет этот объект для формирования контекста обмена данными, включая его направление.

id
Идентификатор ресурса элемента управления, связанного с свойством элемента управления, указанным в pszPropName.

member
Переменная-член, связанная с элементом управления страницы свойств, заданным идентификатором и свойством, указанным в pszPropName.

pszPropName
Имя свойства элемента управления, которое необходимо обменять с элементом управления, указанным идентификатором.

Замечания

Эта функция должна вызываться перед соответствующим DDX_Text вызовом функции.

Требования

Заголовок afxctl.h

BEGIN_PROPPAGEIDS

Начинает определение списка идентификаторов страниц свойств элемента управления.

BEGIN_PROPPAGEIDS(class_name,  count)

Параметры

class_name
Имя класса элемента управления, для которого указываются страницы свойств.

count
Количество страниц свойств, используемых классом элемента управления.

Замечания

В файле реализации (.cpp), который определяет функции-члены класса, запустите список страниц свойств с помощью макроса BEGIN_PROPPAGEIDS, а затем добавьте записи макросов для каждой страницы свойств и заполните список страниц свойств с помощью макроса END_PROPPAGEIDS.

Дополнительные сведения о страницах свойств см. в статье ActiveX Controls: Property Pages.

Требования

Заголовок afxctl.h

END_PROPPAGEIDS

Заканчивает определение списка идентификаторов страницы свойств.

END_PROPPAGEIDS(class_name)

Параметры

class_name
Имя класса элемента управления, который владеет страницей свойств.

Требования

Заголовок afxctl.h

PROPPAGEID

Добавляет страницу свойств для использования элементом управления OLE.

PROPPAGEID(clsid)

Параметры

clsid
Уникальный идентификатор класса страницы свойств.

Замечания

Все макросы PROPPAGEID должны быть помещены между BEGIN_PROPPAGEIDS и END_PROPPAGEIDS макросами в файле реализации элемента управления.

Требования

Заголовок afxctl.h

См. также

Макросы и глобальные