Класс CMFCPropertySheet
Класс CMFCPropertySheet
поддерживает таблицу свойств, каждая страница свойств в которой обозначается вкладкой, кнопкой панели инструментов, узлом элемента управления «Дерево» или элементом списка.
Синтаксис
class CMFCPropertySheet : public CPropertySheet
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CMFCPropertySheet::CMFCPropertySheet | Формирует объект CMFCPropertySheet . |
CMFCPropertySheet::~CMFCPropertySheet |
Деструктор. |
Открытые методы
Имя | Описание |
---|---|
CMFCPropertySheet::AddPage | Добавляет страницу в таблицу свойств. |
CMFCPropertySheet::AddPageToTree | Добавляет новую страницу свойств в элемент управления «Дерево». |
CMFCPropertySheet::AddTreeCategory | Добавляет новый узел в элемент управления «Дерево». |
CMFCPropertySheet::EnablePageHeader | Резервирует место в верхней части каждой страницы для отрисовки пользовательского заголовка. |
CMFCPropertySheet::GetHeaderHeight | Получает высоту текущего заголовка. |
CMFCPropertySheet::GetLook | Получает значение перечисления, указывающее внешний вид текущей таблицы свойств. |
CMFCPropertySheet::GetNavBarWidth | Получает ширину панели навигации в пикселях. |
CMFCPropertySheet::GetTab | Получает внутренний объект набора вкладок, который поддерживает текущий элемент управления «Страница свойств». |
CMFCPropertySheet::GetThisClass |
Используется платформой для получения указателя на объект CRuntimeClass , связанный с этим типом класса. |
CMFCPropertySheet::InitNavigationControl | Инициализирует появление текущего элемента управления «Страница свойств». |
CMFCPropertySheet::OnActivatePage | Вызывается платформой при включении страницы свойств. |
CMFCPropertySheet::OnDrawPageHeader | Вызывается платформой для отрисовки пользовательского заголовка страницы свойств. |
CMFCPropertySheet::OnInitDialog |
Обрабатывает сообщение WM_INITDIALOG. (Переопределения CPropertySheet::OnInitDialog.) |
CMFCPropertySheet::OnRemoveTreePage | Вызывается платформой для удаления страницы свойств из элемента управления «Дерево». |
CMFCPropertySheet::PreTranslateMessage |
Преобразует сообщения окна перед отправкой в функции TranslateMessage и DispatchMessage Windows. (Переопределяет CPropertySheet::PreTranslateMessage .) |
CMFCPropertySheet::RemoveCategory | Удаляет узел из элемента управления «Дерево». |
CMFCPropertySheet::RemovePage | Удаляет страницу свойств из таблицы свойств. |
CMFCPropertySheet::SetIconsList | Указывает список изображений, используемых в элементе управления навигации панели Outlook. |
CMFCPropertySheet::SetLook | Задает внешний вид таблицы свойств. |
Замечания
Класс CMFCPropertySheet
представляет таблицы свойств, также называемые диалоговыми окнами с вкладками. Класс CMFCPropertySheet
может отображать страницу свойств различными способами.
Чтобы использовать класс CMFCPropertySheet
в приложении, выполните следующие действия.
Создайте класс из класса
CMFCPropertySheet
и дайте ему имя, например CMyPropertySheet.Создайте объект CMFCPropertyPage для каждой страницы свойств.
Вызовите метод CMFCPropertySheet::SetLook в конструкторе CMyPropertySheet. Параметр этого метода указывает, что страницы свойств должны отображаться как вкладки вдоль верхней или левой стороны таблицы свойств, как вкладки в стиле таблицы свойств Microsoft OneNote свойств, как кнопки в элементе управления «Панель инструментов» Microsoft Outlook, как узлы дерева или как список элементов с левой стороны таблицы свойств.
Если вы создаете лист свойств в стиле панели инструментов Microsoft Outlook, вызовите метод CMFCPropertySheet::SetIconsList , чтобы связать список изображений со страницами свойств.
Вызовите метод CMFCPropertySheet::AddPage для каждой страницы свойств.
Создайте элемент управления
CMFCPropertySheet
и вызовите его методDoModal
.
Иллюстрации
На следующем рисунке показана таблица свойств в стиле встроенной панели инструментов Microsoft Outlook. Панель инструментов Outlook отображается с левой стороны таблицы свойств.
На следующем рисунке показан лист свойств, содержащий объект класса CMFCPropertyGridCtrl. Этот объект является таблицей свойств в стиле стандартной страницы свойств общих элементов управления.
На следующем рисунке показана таблица свойств в стиле элемента управления «Дерево».
Иерархия наследования
Требования
Заголовок: afxpropertysheet.h
CMFCPropertySheet::AddPage
Добавляет страницу в таблицу свойств.
void AddPage(CPropertyPage* pPage);
Параметры
pPage
[in] Указатель на объект страницы. Значение этого параметра не может быть равно NULL.
Замечания
Этот метод добавляет указанную страницу свойств в качестве самой правой вкладки на листе свойств. Поэтому используйте этот метод для добавления страниц в левом порядке вправо.
Если лист свойств находится в стиле Microsoft Outlook, платформа отображает список кнопок навигации слева от листа свойств. После добавления страницы свойств этот метод добавляет соответствующую кнопку в список. Чтобы отобразить страницу свойств, нажмите соответствующую кнопку. Дополнительные сведения о стилях листов свойств см. в разделе CMFCPropertySheet::SetLook.
CMFCPropertySheet::AddPageToTree
Добавляет новую страницу свойств в элемент управления «Дерево».
void AddPageToTree(
CMFCPropertySheetCategoryInfo* pCategory,
CMFCPropertyPage* pPage,
int nIconNum=-1,
int nSelIconNum=-1);
Параметры
pCategory
[in] Указатель на родительский узел дерева или NULL, чтобы связать указанную страницу с узлом верхнего уровня. Вызовите метод CMFCPropertySheet::AddTreeCategory, чтобы получить этот указатель.
pPage
[in] Указатель на объект страницы свойств.
nIconNum
[in] Отсчитываемый от нуля индекс значка или -1, если значок не используется. Значок отображается рядом со страницей свойств элемента управления деревом, когда страница не выбрана. По умолчанию используется значение 1.
nSelIconNum
[in] Отсчитываемый от нуля индекс значка или -1, если значок не используется. Значок отображается рядом со страницей свойств элемента управления деревом при выборе страницы. По умолчанию используется значение 1.
Замечания
Этот метод добавляет страницу свойств в виде листа элемента управления деревом. Чтобы добавить страницу свойств, создайте CMFCPropertySheet
объект, вызовите метод CMFCPropertySheet::SetLook с заданным параметром CMFCPropertySheet::PropSheetLook_Tree
look, а затем используйте этот метод для добавления страницы свойств.
CMFCPropertySheet::AddTreeCategory
Добавляет новый узел в элемент управления «Дерево».
CMFCPropertySheetCategoryInfo* AddTreeCategory(
LPCTSTR lpszLabel,
int nIconNum=-1,
int nSelectedIconNum=-1,
const CMFCPropertySheetCategoryInfo* pParentCategory=NULL);
Параметры
lpszLabel
[in] Имя узла.
nIconNum
[in] Отсчитываемый от нуля индекс значка или -1, если значок не используется. Значок отображается рядом со страницей свойств элемента управления деревом, когда страница не выбрана. По умолчанию используется значение 1.
nSelectedIconNum
[in] Отсчитываемый от нуля индекс значка или -1, если значок не используется. Значок отображается рядом со страницей свойств элемента управления деревом при выборе страницы. По умолчанию используется значение 1.
pParentCategory
[in] Указатель на родительский узел дерева или NULL, чтобы связать указанную страницу с узлом верхнего уровня. Задайте этот параметр с помощью метода CMFCPropertySheet::AddTreeCategory .
Возвращаемое значение
Указатель на новый узел в элементе управления "Дерево".
Замечания
Используйте этот метод, чтобы добавить новый узел, который также называется категорией, в элемент управления деревом. Чтобы добавить узел, создайте CMFCPropertySheet
объект, вызовите метод CMFCPropertySheet::SetLook с набором CMFCPropertySheet::PropSheetLook_Tree
параметров look, а затем используйте этот метод для добавления узла.
Используйте возвращаемое значение этого метода в последующих вызовах CMFCPropertySheet::AddPageToTree и CMFCPropertySheet::AddTreeCategory.
CMFCPropertySheet::CMFCPropertySheet
Формирует объект CMFCPropertySheet
.
CMFCPropertySheet(
UINT nIDCaption,
CWnd* pParentWnd=NULL,
UINT iSelectPage=0);
CMFCPropertySheet(
LPCTSTR pszCaption,
CWnd* pParentWnd=NULL,
UINT iSelectPage=0);
Параметры
pszCaption
[in] Строка, содержащая заголовок листа свойств. Не может быть NULL.
nIDCaption
[in] Идентификатор ресурса, содержащий заголовок листа свойств.
pParentWnd
[in] Указатель на родительское окно листа свойств или NULL, если родительское окно является главным окном приложения. Значение по умолчанию — NULL.
iSelectPage
[in] Отсчитываемый от нуля индекс страницы верхнего свойства. Значение по умолчанию равно 0.
Замечания
Дополнительные сведения см. в параметрах конструктора CPropertySheet::CPropertySheet .
CMFCPropertySheet::EnablePageHeader
Резервирует место в верхней части каждой страницы для отрисовки пользовательского заголовка.
void EnablePageHeader(int nHeaderHeight);
Параметры
nHeaderHeight
[in] Высота заголовка в пикселях.
Замечания
Чтобы использовать значение параметра nHeaderHeight для рисования пользовательского заголовка, переопределите метод CMFCPropertySheet::OnDrawPageHeader.
CMFCPropertySheet::GetHeaderHeight
Получает высоту текущего заголовка.
int GetHeaderHeight() const;
Возвращаемое значение
Высота заголовка в пикселях.
Замечания
Вызовите метод CMFCPropertySheet::EnablePageHeader перед вызовом этого метода.
CMFCPropertySheet::GetLook
Получает значение перечисления, указывающее внешний вид текущей таблицы свойств.
PropSheetLook GetLook() const;
Возвращаемое значение
Одно из значений перечисления, указывающее внешний вид листа свойств. Список возможных значений см. в таблице перечисления в разделе "Примечания" cmFCPropertySheet::SetLook.
CMFCPropertySheet::GetNavBarWidth
Получает ширину панели навигации.
int GetNavBarWidth() const;
Возвращаемое значение
Ширина панели навигации в пикселях.
CMFCPropertySheet::GetTab
Получает внутренний объект набора вкладок, который поддерживает текущий элемент управления «Страница свойств».
CMFCTabCtrl& GetTab() const;
Возвращаемое значение
Объект элемента управления внутренней вкладки.
Замечания
Вы можете задать лист свойств таким образом, чтобы он отображался в разных стилях, таких как элемент управления деревом, список кнопок навигации или набор страниц с вкладками.
Перед вызовом этого метода вызовите метод CMFCPropertySheet::SetLook , чтобы задать внешний вид элемента управления листом свойств. Затем вызовите метод CMFCPropertySheet::InitNavigationControl , чтобы инициализировать внутренний объект элемента управления tab. Используйте этот метод, чтобы получить объект элемента управления tab, а затем использовать этот объект для работы с вкладками на листе свойств.
Этот метод утверждается в режиме отладки, если элемент управления листом свойств не задан в стиле Microsoft OneNote.
CMFCPropertySheet::InitNavigationControl
Инициализирует появление текущего элемента управления «Страница свойств».
virtual CWnd* InitNavigationControl();
Возвращаемое значение
Указатель на окно элемента управления листом свойств.
Замечания
Элемент управления листом свойств может отображаться в нескольких разных формах, таких как набор страниц с вкладками, элемент управления деревом или список кнопок навигации. Используйте метод CMFCPropertySheet::SetLook, чтобы указать внешний вид элемента управления листом свойств.
CMFCPropertySheet::OnActivatePage
Вызывается платформой при включении страницы свойств.
virtual void OnActivatePage(CPropertyPage* pPage);
Параметры
pPage
[in] Указатель на объект страницы свойств, представляющий страницу с включенным свойством.
Замечания
По умолчанию этот метод гарантирует, что страница свойств включено прокручивается в представление. Если стиль текущей таблицы свойств содержит область Microsoft Outlook, этот метод задает соответствующую кнопку Outlook для проверенного состояния.
CMFCPropertySheet::OnDrawPageHeader
Вызывается платформой для рисования заголовка для страницы пользовательского свойства.
virtual void OnDrawPageHeader(
CDC* pDC,
int nPage,
CRect rectHeader);
Параметры
pDC
[in] Указатель на контекст устройства.
nPage
[in] Номер страницы свойств от нуля.
rectHeader
[in] Ограничивающий прямоугольник, указывающий место рисования заголовка.
Замечания
По умолчанию этот метод не выполняет никаких действий. При переопределении этого метода вызовите метод CMFCPropertySheet::EnablePageHeader , прежде чем платформа вызывает этот метод.
CMFCPropertySheet::OnRemoveTreePage
Вызывается платформой для удаления страницы свойств из элемента управления «Дерево».
virtual BOOL OnRemoveTreePage(CPropertyPage* pPage);
Параметры
pPage
[in] Указатель на объект страницы свойств, представляющий страницу свойств для удаления.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
CMFCPropertySheet::RemoveCategory
Удаляет узел из элемента управления «Дерево».
void RemoveCategory(CMFCPropertySheetCategoryInfo* pCategory);
Параметры
pCategory
[in] Указатель на категорию (узел) для удаления.
Замечания
Используйте этот метод для удаления узла, который также называется категорией из элемента управления деревом. Используйте метод CMFCPropertySheet::AddTreeCategory, чтобы добавить узел в элемент управления деревом.
CMFCPropertySheet::RemovePage
Удаляет страницу свойств из таблицы свойств.
void RemovePage(CPropertyPage* pPage);
void RemovePage(int nPage);
Параметры
pPage
[in] Указатель на объект страницы свойств, представляющий страницу свойств для удаления. Не может быть NULL.
nPage
[in] Отсчитываемый от нуля индекс страницы.
Замечания
Этот метод удаляет указанную страницу свойств и уничтожает связанное окно. Объект страницы свойств, указанный параметром pPage , не будет уничтожен до закрытия окна CMFCPropertySheet .
CMFCPropertySheet::SetIconsList
Указывает список изображений, используемых в элементе управления навигации панели Outlook.
BOOL SetIconsList(
UINT uiImageListResID,
int cx,
COLORREF clrTransparent=RGB(255, 0, 255));
void SetIconsList(HIMAGELIST hIcons);
Параметры
uiImageListResID
[in] Идентификатор ресурса списка изображений.
cx
[in] Ширина значков в списке изображений в пикселях.
clrTransparent
[in] Цвет прозрачного изображения. Части изображения, которые являются этим цветом, будут прозрачными. Значением по умолчанию является цветная магента, RGB(255,0,255).
hIcons
[in] Дескриптор существующего списка изображений.
Возвращаемое значение
В первом синтаксисе перегрузки метода значение TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Если лист свойств находится в стиле Microsoft Outlook, платформа отображает список кнопок навигации, называемых элементом управления панелью Outlook слева от листа свойств. Используйте этот метод, чтобы задать список изображений, используемый элементом управления панелью Outlook.
Дополнительные сведения о методах, поддерживающих этот метод, см. в разделе CImageList::Create and CImageList::Add. Дополнительные сведения о настройке стиля листа свойств см. в разделе CMFCPropertySheet::SetLook.
CMFCPropertySheet::SetLook
Задает внешний вид таблицы свойств.
void SetLook(
PropSheetLook look,
int nNavControlWidth=100);
Параметры
смотреть
[in] Одно из значений перечисления, указывающее внешний вид листа свойств. Стиль по умолчанию для листа свойств.CMFCPropertySheet::PropSheetLook_Tabs
Дополнительные сведения см. в таблице в разделе "Примечания" этой статьи.
nNavControlWidth
[in] Ширина элемента управления навигации в пикселях. Значение по умолчанию — 100.
Замечания
Чтобы отобразить лист свойств в стиле, отличном от стандартного, вызовите этот метод перед созданием окна листа свойств.
В следующей таблице перечислены значения перечисления, которые можно указать в параметре look .
значение | Описание |
---|---|
CMFCPropertySheet::PropSheetLook_Tabs |
(по умолчанию) Отображает вкладку для каждой страницы свойств. Вкладки отображаются в верхней части листа свойств и стекаются, если есть больше вкладок, чем будет соответствовать одной строке. |
CMFCPropertySheet::PropSheetLook_OutlookBar |
Отображает список кнопок навигации в стиле панели Microsoft Outlook в левой части листа свойств. Каждая кнопка в списке соответствует странице свойств. Платформа отображает стрелки прокрутки, если есть больше кнопок, чем будет соответствовать видимой области списка. |
CMFCPropertySheet::PropSheetLook_Tree |
Отображает элемент управления "Дерево" в левой части листа свойств. Каждый родительский или дочерний узел элемента управления деревом соответствует странице свойств. Платформа отображает стрелки прокрутки, если есть больше узлов, чем будет соответствовать видимой области элемента управления деревом. |
CMFCPropertySheet::PropSheetLook_OneNoteTabs |
Отображает вкладку в стиле Microsoft OneNote для каждой страницы свойств. Платформа отображает вкладки в верхней части листа свойств и стрелки прокрутки, если есть больше вкладок, чем будет соответствовать одной строке. |
CMFCPropertySheet::PropSheetLook_List |
Отображает список в левой части листа свойств. Каждый элемент списка соответствует странице свойств. Платформа отображает стрелки прокрутки, если есть больше элементов списка, чем будет соответствовать видимой области списка. |
См. также
Диаграмма иерархии
Классы
Класс CMFCPropertyPage
Класс CMFCOutlookBar