屬性頁 (MFC)
屬性頁會在可自定義的圖形化介面中顯示特定 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 | 開始屬性頁識別碼的清單。 |
END_PROPPAGEIDS | 結束屬性頁識別碼的清單。 |
PROPPAGEID | 宣告控件類別的屬性頁。 |
DDP_CBIndex
呼叫您屬性頁的 DoDataExchange
函式中的這個函式,來同步處理整數屬性的值與在屬性頁中下拉式方塊裡目前選取範圍的索引。
void AFXAPI DDP_CBIndex(
CDataExchange* pDX,
int id,
int& member,
LPCTSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的下拉式方塊控件資源標識碼。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定下拉式方塊控件交換之控件的屬性名稱。
備註
應該在對應的 DDX_CBIndex
函式呼叫之前呼叫此函式。
需求
標頭 afxctl.h
DDP_CBString
在屬性頁的 DoDataExchange
函式中呼叫此函式,以同步處理字串屬性的值與屬性頁下拉式方塊中的目前選取範圍。
void AFXAPI DDP_CBString(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的下拉式方塊控件資源標識碼。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定下拉式方塊字串交換之控件屬性的屬性名稱。
備註
應該在對應的 DDX_CBString
函式呼叫之前呼叫此函式。
需求
標頭 afxctl.h
DDP_CBStringExact
在屬性頁的 DoDataExchange
函式中呼叫此函式,以同步處理與屬性頁上下拉式方塊中目前選取專案完全相符的字串屬性值。
void AFXAPI DDP_CBStringExact(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的下拉式方塊控件資源標識碼。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定下拉式方塊字串交換之控件屬性的屬性名稱。
備註
應該在對應的 DDX_CBStringExact
函式呼叫之前呼叫此函式。
需求
標頭 afxctl.h
DDP_Check
在屬性頁的 DoDataExchange
函式中呼叫此函式,以同步處理屬性的值與相關聯的屬性頁複選框控件。
void AFXAPI DDP_Check(
CDataExchange* pDX,
int id,
int & member,
LPCSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的複選框控件資源標識碼。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定之複選框控件交換之控件的屬性名稱。
備註
應該在對應的 DDX_Check
函式呼叫之前呼叫此函式。
需求
標頭 afxctl.h
DDP_LBIndex
在屬性頁的 DoDataExchange
函式中呼叫此函式,以同步處理整數屬性的值,以及屬性頁上清單框中目前選取範圍的索引。
void AFXAPI DDP_LBIndex(
CDataExchange* pDX,
int id,
int& member,
LPCTSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的清單框控件資源標識符。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定清單框字串交換之控件屬性的屬性名稱。
備註
應該在對應的 DDX_LBIndex
函式呼叫之前呼叫此函式。
需求
標頭 afxctl.h
DDP_LBString
在屬性頁的 DoDataExchange
函式中呼叫此函式,以同步處理字串屬性的值與屬性頁上清單框中目前的選取範圍。
void AFXAPI DDP_LBString(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的清單框控件資源標識符。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定清單框字串交換之控件屬性的屬性名稱。
備註
應該在對應的 DDX_LBString
函式呼叫之前呼叫此函式。
需求
標頭 afxctl.h
DDP_LBStringExact
在屬性頁的 DoDataExchange
函式中呼叫此函式,以同步處理與屬性頁上清單框中目前選取專案完全相符的字串屬性值。
void AFXAPI DDP_LBStringExact(
CDataExchange* pDX,
int id,
CString& member,
LPCTSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的清單框控件資源標識符。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定清單框字串交換之控件屬性的屬性名稱。
備註
應該在對應的 DDX_LBStringExact
函式呼叫之前呼叫此函式。
需求
標頭 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);
}
需求
標頭 afxctl.h
DDP_Radio
在控件的 DoPropExchange
函式中呼叫此函式,以同步處理 屬性的值與相關聯的屬性頁單選按鈕控件。
void AFXAPI DDP_Radio(
CDataExchange* pDX,
int id,
int & member,
LPCTSTR pszPropName);
參數
pDX
指向 CDataExchange
物件的指標。 架構會提供此物件來建立資料交換的內容,包括其方向。
id
與 pszPropName 所指定之控件屬性相關聯的單選按鈕控件資源標識碼。
成員
與 id 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定單選按鈕控制件交換之控制件的屬性名稱。
備註
應該在對應的 DDX_Radio
函式呼叫之前呼叫此函式。
需求
標頭 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 所指定的屬性頁控件相關聯的成員變數,以及 pszPropName 所指定的屬性。
pszPropName
要與id所指定之控件交換之控件的屬性名稱。
備註
應該在對應的 DDX_Text
函式呼叫之前呼叫此函式。
需求
標頭 afxctl.h
BEGIN_PROPPAGEIDS
開始定義控件的屬性頁識別符清單。
BEGIN_PROPPAGEIDS(class_name, count)
參數
class_name
要為其指定屬性頁之控件類別的名稱。
計數
控件類別所使用的屬性頁數。
備註
在定義類別成員函式的實作 (.cpp) 檔案中,使用 BEGIN_PROPPAGEIDS 巨集啟動屬性頁清單,然後新增每個屬性頁的巨集專案,並使用 END_PROPPAGEIDS 巨集來完成屬性頁清單。
如需屬性頁的詳細資訊,請參閱 ActiveX 控件:屬性頁一文。
需求
標頭 afxctl.h
END_PROPPAGEIDS
結束屬性頁識別碼清單的定義。
END_PROPPAGEIDS(class_name)
參數
class_name
擁有屬性頁之控件類別的名稱。
需求
標頭 afxctl.h
PROPPAGEID
新增屬性頁以供 OLE 控制件使用。
PROPPAGEID(clsid)
參數
clsid
屬性頁的唯一類別識別碼。
備註
所有 PROPPAGEID 巨集都必須放在控件實作檔中BEGIN_PROPPAGEIDS和END_PROPPAGEIDS巨集之間。
需求
標頭 afxctl.h