Страницы свойств (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 , short BSTR и 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