プロパティ ページ (MFC)
プロパティ ページでは、ダイアログ データ交換 (DDX) に基づくデータ マッピング メカニズムをサポートすることで、カスタマイズ可能なグラフィカル インターフェイスで特定の OLE コントロール プロパティの現在の値を表示できます。
このデータ マッピング メカニズムは、プロパティ ページ コントロールを OLE コントロールの個々のプロパティにマップします。 コントロール プロパティの値は、プロパティ ページ コントロールの状態または内容を反映します。 プロパティ ページ コントロールとプロパティの間のマッピングは、プロパティ ページの DoDataExchange
メンバー関数のDDP_関数呼び出しによって指定されます。 コントロールのプロパティ ページを使用して入力されたデータを交換する 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 コントロール: プロパティ ページ」を参照してください。
OLE コントロールのプロパティ ページを作成および管理するために使用されるマクロの一覧を次に示します。
プロパティ ページ
名前 | 説明 |
---|---|
BEGIN_PROPPAGEIDS | プロパティ ページ ID の一覧を開始します。 |
END_PROPPAGEIDS | プロパティ ページ ID の一覧を終了します。 |
PROPPAGEID | コントロール クラスのプロパティ ページを宣言します。 |
DDP_CBIndex
プロパティ ページの DoDataExchange
関数でこの関数を呼び出して、整数プロパティの値を、プロパティ ページのコンボ ボックス内の現在の選択範囲のインデックスと同期します。
void AFXAPI DDP_CBIndex(
CDataExchange* pDX,
int id,
int& member,
LPCTSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているコンボ ボックス コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
idで指定されたコンボ ボックス コントロールと交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_CBIndex
関数呼び出しの前に呼び出す必要があります。
要件
Header afxctl.h
DDP_CBString
プロパティ ページの DoDataExchange
関数でこの関数を呼び出して、文字列プロパティの値を、プロパティ ページのコンボ ボックス内の現在の選択範囲と同期します。
void AFXAPI DDP_CBString(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているコンボ ボックス コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
id で指定されたコンボ ボックス文字列と交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_CBString
関数呼び出しの前に呼び出す必要があります。
要件
Header afxctl.h
DDP_CBStringExact
プロパティ ページの DoDataExchange
関数でこの関数を呼び出して、プロパティ ページのコンボ ボックス内の現在の選択範囲と完全に一致する文字列プロパティの値を同期します。
void AFXAPI DDP_CBStringExact(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているコンボ ボックス コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
id で指定されたコンボ ボックス文字列と交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_CBStringExact
関数呼び出しの前に呼び出す必要があります。
要件
Header afxctl.h
DDP_Check
プロパティ ページの DoDataExchange
関数でこの関数を呼び出して、プロパティの値を関連付けられているプロパティ ページのチェック ボックス コントロールと同期します。
void AFXAPI DDP_Check(
CDataExchange* pDX,
int id,
int & member,
LPCSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているチェック ボックス コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
idで指定されたチェック ボックス コントロールと交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_Check
関数呼び出しの前に呼び出す必要があります。
要件
Header afxctl.h
DDP_LBIndex
プロパティ ページの DoDataExchange
関数でこの関数を呼び出して、整数プロパティの値を、プロパティ ページのリスト ボックス内の現在の選択範囲のインデックスと同期します。
void AFXAPI DDP_LBIndex(
CDataExchange* pDX,
int id,
int& member,
LPCTSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているリスト ボックス コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
id で指定されたリスト ボックス文字列と交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_LBIndex
関数呼び出しの前に呼び出す必要があります。
要件
Header afxctl.h
DDP_LBString
プロパティ ページの DoDataExchange
関数でこの関数を呼び出して、文字列プロパティの値をプロパティ ページのリスト ボックス内の現在の選択範囲と同期します。
void AFXAPI DDP_LBString(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているリスト ボックス コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
id で指定されたリスト ボックス文字列と交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_LBString
関数呼び出しの前に呼び出す必要があります。
要件
Header afxctl.h
DDP_LBStringExact
プロパティ ページの DoDataExchange
関数でこの関数を呼び出して、プロパティ ページのリスト ボックス内の現在の選択範囲と完全に一致する文字列プロパティの値を同期します。
void AFXAPI DDP_LBStringExact(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているリスト ボックス コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
id で指定されたリスト ボックス文字列と交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_LBStringExact
関数呼び出しの前に呼び出す必要があります。
要件
Header 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);
}
要件
Header afxctl.h
DDP_Radio
コントロールの DoPropExchange
関数でこの関数を呼び出して、プロパティの値を関連付けられたプロパティ ページのラジオ ボタン コントロールと同期します。
void AFXAPI DDP_Radio(
CDataExchange* pDX,
int id,
int & member,
LPCTSTR pszPropName);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインター。 フレームワークは、データ交換のコンテキスト (交換方向を含みます) を確定するためにこのオブジェクトを提供します。
id
pszPropName で指定されたコントロール プロパティに関連付けられているラジオ ボタン コントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
idで指定されたラジオ ボタン コントロールと交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_Radio
関数呼び出しの前に呼び出す必要があります。
要件
Header 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 で指定されたコントロール プロパティに関連付けられているコントロールのリソース ID。
member
id で指定されたプロパティ ページ コントロールと、pszPropName で指定されたプロパティに関連付けられているメンバー変数。
pszPropName
idで指定されたコントロールと交換するコントロール プロパティのプロパティ名。
解説
この関数は、対応する DDX_Text
関数呼び出しの前に呼び出す必要があります。
要件
Header afxctl.h
BEGIN_PROPPAGEIDS
コントロールのプロパティ ページ ID の一覧の定義を開始します。
BEGIN_PROPPAGEIDS(class_name, count)
パラメーター
class_name
プロパティ ページを指定するコントロール クラスの名前。
count
コントロール クラスで使用されるプロパティ ページの数。
解説
クラスのメンバー関数を定義する実装 (.cpp) ファイルで、BEGIN_PROPPAGEIDS マクロを使用してプロパティ ページ の一覧を開始し、各プロパティ ページのマクロ エントリを追加し、プロパティ ページの一覧に END_PROPPAGEIDS マクロを入力します。
プロパティ ページの詳細については、「 ActiveX コントロール: プロパティ ページ」を参照してください。
要件
Header afxctl.h
END_PROPPAGEIDS
プロパティ ページ ID リストの定義を終了します。
END_PROPPAGEIDS(class_name)
パラメーター
class_name
プロパティ ページを所有するコントロール クラスの名前。
要件
Header afxctl.h
PROPPAGEID
OLE コントロールで使用するプロパティ ページを追加します。
PROPPAGEID(clsid)
パラメーター
clsid
プロパティ ページの一意のクラス ID。
解説
すべての PROPPAGEID マクロは、コントロールの実装ファイル内の BEGIN_PROPPAGEIDS マクロとEND_PROPPAGEIDS マクロの間に配置する必要があります。
要件
Header afxctl.h