次の方法で共有


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. CMyPropertySheet コンストラクターで CMFCPropertySheet::SetLook メソッドを呼び出します。 このメソッドのパラメーターで、プロパティ ページの表示方法として、プロパティ シートの上部または左側のタブ、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

要件

Header: 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]アイコンの 0 から始まるインデックス。アイコンが使用されていない場合は -1。 このアイコンは、ページが選択されていない場合にツリー コントロールのプロパティ ページの横に表示されます。 既定値は -1 です。

nSelIconNum
[in]アイコンの 0 から始まるインデックス。アイコンが使用されていない場合は -1。 ページが選択されると、ツリー コントロールのプロパティ ページの横にアイコンが表示されます。 既定値は -1 です。

解説

このメソッドは、ツリー コントロールのリーフとしてプロパティ ページを追加します。 プロパティ ページを追加するには、CMFCPropertySheet オブジェクトを作成し、look パラメーターをCMFCPropertySheet::PropSheetLook_Treeに設定して CMFCPropertySheet::SetLook メソッドを呼び出し、このメソッドを使用してプロパティ ページを追加します。

CMFCPropertySheet::AddTreeCategory

ツリー コントロールに新しいノードを追加します。

CMFCPropertySheetCategoryInfo* AddTreeCategory(
    LPCTSTR lpszLabel,
    int nIconNum=-1,
    int nSelectedIconNum=-1,
    const CMFCPropertySheetCategoryInfo* pParentCategory=NULL);

パラメーター

lpszLabel
[in]ノードの名前。

nIconNum
[in]アイコンの 0 から始まるインデックス。アイコンが使用されていない場合は -1。 このアイコンは、ページが選択されていない場合にツリー コントロールのプロパティ ページの横に表示されます。 既定値は -1 です。

nSelectedIconNum
[in]アイコンの 0 から始まるインデックス。アイコンが使用されていない場合は -1。 ページが選択されると、ツリー コントロールのプロパティ ページの横にアイコンが表示されます。 既定値は -1 です。

pParentCategory
[in]親ツリー ノードへのポインター。指定したページを最上位ノードに関連付ける場合は NULL。 このパラメーターは、 CMFCPropertySheet::AddTreeCategory メソッドで設定します。

戻り値

ツリー コントロール内の新しいノードへのポインター。

解説

このメソッドを使用して、新しいノード (カテゴリとも呼ばれます) をツリー コントロールに追加します。 ノードを追加するには、CMFCPropertySheet オブジェクトを作成し、look パラメーターを CMFCPropertySheet::PropSheetLook_Tree に設定して CMFCPropertySheet::SetLook メソッドを呼び出し、このメソッドを使用してノードを追加します。

このメソッドの戻り値は、後続の 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]プロパティ シートのキャプションを含む文字列。 Nll は指定できません。

nIDCaption
[in]プロパティ シートのキャプションを含むリソース ID。

pParentWnd
[in]プロパティ シートの親ウィンドウへのポインター。親ウィンドウがアプリケーションのメイン ウィンドウの場合は NULL。 既定値は NULL です。

iSelectPage
[in]トップ プロパティ ページの 0 から始まるインデックス。 既定値は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;

戻り値

プロパティ シートの外観を指定する列挙値の 1 つ。 使用可能な値の一覧については、 CMFCPropertySheet::SetLook の「解説」セクションの列挙表を参照してください。

CMFCPropertySheet::GetNavBarWidth

ナビゲーション バーの幅を取得します。

int GetNavBarWidth() const;

戻り値

軸スクロール バーの幅 (ピクセル単位)。

CMFCPropertySheet::GetTab

現在のプロパティ シート コントロールをサポートする内部タブ コントロール オブジェクトを取得します。

CMFCTabCtrl& GetTab() const;

戻り値

内部タブ コントロール オブジェクト。

解説

ツリー コントロール、ナビゲーション ボタンの一覧、タブ付きページのセットなど、さまざまなスタイルで表示されるようにプロパティ シートを設定できます。

このメソッドを呼び出す前に、 CMFCPropertySheet::SetLook メソッドを呼び出して、プロパティ シート コントロールの外観を設定します。 次に、 CMFCPropertySheet::InitNavigationControl メソッドを呼び出して、内部タブ コントロール オブジェクトを初期化します。 このメソッドを使用してタブ コントロール オブジェクトを取得し、そのオブジェクトを使用してプロパティ シートのタブを操作します。

プロパティ シート コントロールが 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]0 から始まるプロパティ ページ番号。

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]削除するプロパティ ページを表すプロパティ ページ オブジェクトへのポインター。 Nll は指定できません。

nPage
[in]削除するページの 0 から始まるインデックス。

解説

このメソッドは、指定したプロパティ ページを削除し、関連付けられているウィンドウを破棄します。 pPage パラメーターが指定するプロパティ ページ オブジェクトは、CMFCPropertySheet ウィンドウが閉じられるまで破棄されません。

CMFCPropertySheet::SetIconsList

Outlook ウィンドウのナビゲーション コントロールで使用されるイメージの一覧を指定します。

BOOL SetIconsList(
    UINT uiImageListResID,
    int cx,
    COLORREF clrTransparent=RGB(255, 0, 255));
void SetIconsList(HIMAGELIST hIcons);

パラメーター

uiImageListResID
[in]イメージ リストのリソース ID。

cx
[in]イメージ リスト内のアイコンの幅 (ピクセル単位)。

clrTransparent
[in]透明なイメージの色。 この色である画像の部分は透明になります。 既定値は、色マゼンタ、RGB(255,0,255) です。

hIcons
[in]既存のイメージ リストへのハンドル。

戻り値

最初のメソッド オーバーロード構文では、このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

プロパティ シートが Microsoft Outlook のスタイルの場合、フレームワークは、Outlook ウィンドウ コントロールと呼ばれるナビゲーション ボタンの一覧をプロパティ シートの左側に表示します。 Outlook ウィンドウ コントロールで使用する画像リストを設定するには、このメソッドを使用します。

このメソッドをサポートするメソッドの詳細については、「 CImageList::Create および CImageList::Add を参照してください。 プロパティ シートのスタイルを設定する方法の詳細については、「 CMFCPropertySheet::SetLookを参照してください。

CMFCPropertySheet::SetLook

プロパティ シートの外観を指定します。

void SetLook(
    PropSheetLook look,
    int nNavControlWidth=100);

パラメーター

ほら
[in]プロパティ シートの外観を指定する列挙値の 1 つ。 プロパティ シートの既定のスタイルは CMFCPropertySheet::PropSheetLook_Tabs。 詳細については、このトピックの「解説」セクションの表を参照してください。

nNavControlWidth
[in]ナビゲーション コントロールの幅 (ピクセル単位)。 既定値は 100 です。

解説

プロパティ シートを既定以外のスタイルで表示するには、プロパティ シート ウィンドウを作成する前にこのメソッドを呼び出します。

次の表に、 look パラメーターで指定できる列挙値を示します。

Value 説明
CMFCPropertySheet::PropSheetLook_Tabs (既定値)各プロパティ ページのタブを表示します。 タブはプロパティ シートの上部に表示され、1 行に収まるタブ数よりも多くのタブがある場合は積み重ねられます。
CMFCPropertySheet::PropSheetLook_OutlookBar プロパティ シートの左側にある Microsoft Outlook バーのスタイルで、ナビゲーション ボタンの一覧を表示します。 リスト内の各ボタンは、プロパティ ページに対応します。 リストの表示領域に収まるよりも多くのボタンがある場合、フレームワークはスクロール矢印を表示します。
CMFCPropertySheet::PropSheetLook_Tree プロパティ シートの左側にツリー コントロールを表示します。 ツリー コントロールの各親ノードまたは子ノードは、プロパティ ページに対応します。 ツリー コントロールの表示領域に収まるノード数を超えるノードがある場合、フレームワークはスクロール矢印を表示します。
CMFCPropertySheet::PropSheetLook_OneNoteTabs 各プロパティ ページのタブを Microsoft OneNote のスタイルで表示します。 1 行に収まるタブが多い場合、フレームワークはプロパティ シートの上部にタブを表示し、スクロール矢印を表示します。
CMFCPropertySheet::PropSheetLook_List プロパティ シートの左側にリストを表示します。 各リスト アイテムは、プロパティ ページに対応します。 リストの表示領域に収まるよりも多くのリスト項目がある場合、フレームワークはスクロール矢印を表示します。

関連項目

階層図
クラス
CMFCPropertyPage クラス
CMFCOutlookBar クラス