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


Класс 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 в приложении, выполните следующие действия.

  1. Создайте класс из класса CMFCPropertySheet и дайте ему имя, например CMyPropertySheet.

  2. Создайте объект CMFCPropertyPage для каждой страницы свойств.

  3. Вызовите метод CMFCPropertySheet::SetLook в конструкторе CMyPropertySheet. Параметр этого метода указывает, что страницы свойств должны отображаться как вкладки вдоль верхней или левой стороны таблицы свойств, как вкладки в стиле таблицы свойств Microsoft OneNote свойств, как кнопки в элементе управления «Панель инструментов» Microsoft Outlook, как узлы дерева или как список элементов с левой стороны таблицы свойств.

  4. Если вы создаете лист свойств в стиле панели инструментов Microsoft Outlook, вызовите метод CMFCPropertySheet::SetIconsList , чтобы связать список изображений со страницами свойств.

  5. Вызовите метод CMFCPropertySheet::AddPage для каждой страницы свойств.

  6. Создайте элемент управления CMFCPropertySheet и вызовите его метод DoModal.

Иллюстрации

На следующем рисунке показана таблица свойств в стиле встроенной панели инструментов Microsoft Outlook. Панель инструментов Outlook отображается с левой стороны таблицы свойств.

Элементы управления цветом CMFCPropertySheet.

На следующем рисунке показан лист свойств, содержащий объект класса CMFCPropertyGridCtrl. Этот объект является таблицей свойств в стиле стандартной страницы свойств общих элементов управления.

Список и элементы управления свойствами CMFCPropertySheet.

На следующем рисунке показана таблица свойств в стиле элемента управления «Дерево».

Дерево свойств.

Иерархия наследования

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCPropertySheet

Требования

Заголовок: 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_Treelook, а затем используйте этот метод для добавления страницы свойств.

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