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 オブジェクトを作成します。
CMyPropertySheet コンストラクターで CMFCPropertySheet::SetLook メソッドを呼び出します。 このメソッドのパラメーターで、プロパティ ページの表示方法として、プロパティ シートの上部または左側のタブ、Microsoft OneNote プロパティ シート スタイルのタブ、Microsoft Outlook ツール バー コントロールのボタン、ツリー コントロールのノード、プロパティ シートの左側の項目リストのいずれかを指定します。
Microsoft Outlook ツール バーのスタイルでプロパティ シートを作成する場合は、 CMFCPropertySheet::SetIconsList メソッドを呼び出して、イメージ リストをプロパティ ページと関連付けます。
プロパティ ページごとに CMFCPropertySheet::AddPage メソッドを呼び出します。
CMFCPropertySheet
コントロールを作成し、そのDoModal
メソッドを呼び出します。
図
次の図は、埋め込みの Microsoft Outlook ツール バー スタイルのプロパティ シートを示しています。 プロパティ シートの左側に Outlook ツール バーが表示されます。
次の図は、 CMFCPropertyGridCtrl クラス オブジェクトを含むプロパティ シートを示しています。 このオブジェクトは、標準のコモン コントロール スタイルのプロパティ シートです。
次の図は、ツリー コントロール スタイルのプロパティ シートを示しています。
継承階層
要件
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 |
プロパティ シートの左側にリストを表示します。 各リスト アイテムは、プロパティ ページに対応します。 リストの表示領域に収まるよりも多くのリスト項目がある場合、フレームワークはスクロール矢印を表示します。 |