COlePropertyPage 類別
用來將自訂控制項的屬性顯示在類似對話方塊的圖形介面中。
語法
class AFX_NOVTABLE COlePropertyPage : public CDialog
成員
公用建構函式
名稱 | 描述 |
---|---|
COlePropertyPage::COlePropertyPage | 建構 COlePropertyPage 物件。 |
公用方法
名稱 | 描述 |
---|---|
COlePropertyPage::GetControlStatus | 指出使用者是否已修改控制項中的值。 |
COlePropertyPage::GetObjectArray | 傳回屬性頁正在編輯的物件陣列。 |
COlePropertyPage::GetPageSite | 傳回屬性頁介面的 IPropertyPageSite 指標。 |
COlePropertyPage::IgnoreApply | 決定哪些控制件未啟用 [套用] 按鈕。 |
COlePropertyPage::IsModified | 指出使用者是否已修改屬性頁。 |
COlePropertyPage::OnEditProperty | 當使用者編輯屬性時,由架構呼叫。 |
COlePropertyPage::OnHelp | 當使用者叫用說明時,由架構呼叫。 |
COlePropertyPage::OnInitDialog | 初始化屬性頁時,由架構呼叫。 |
COlePropertyPage::OnObjectsChanged | 當選擇具有新屬性的另一個 OLE 控制項時,由架構呼叫。 |
COlePropertyPage::OnSetPageSite | 當屬性框架提供頁面的網站時,由架構呼叫。 |
COlePropertyPage::SetControlStatus | 設定旗標,指出使用者是否已修改 控件中的值。 |
COlePropertyPage::SetDialogResource | 設定屬性頁的對話框資源。 |
COlePropertyPage::SetHelpInfo | 設定屬性頁的簡短說明文字、其說明檔的名稱,以及其說明內容。 |
COlePropertyPage::SetModifiedFlag | 設定旗標,指出使用者是否已修改屬性頁。 |
COlePropertyPage::SetPageName | 設定屬性頁的名稱 (caption)。 |
備註
例如,屬性頁可能包含可讓用戶檢視及修改控件標題屬性的編輯控件。
每個自定義或股票控件屬性都可以有一個對話框控件,可讓控件的用戶檢視目前的屬性值,並視需要修改該值。
如需使用 COlePropertyPage
的詳細資訊,請參閱 ActiveX 控件:屬性頁一文。
繼承階層架構
COlePropertyPage
需求
標頭: afxctl.h
COlePropertyPage::COlePropertyPage
建構 COlePropertyPage
物件。
COlePropertyPage(
UINT idDlg,
UINT idCaption);
參數
idDlg
對話框範本的資源識別碼。
idCaption
屬性頁標題的資源識別碼。
備註
當您實作 的 COlePropertyPage
子類別時,子類別的建構函式應該使用 COlePropertyPage
建構函式來識別屬性頁所依據的對話框範本資源,以及包含其標題的字串資源。
COlePropertyPage::GetControlStatus
判斷使用者是否已使用指定的資源識別碼修改屬性頁控件的值。
BOOL GetControlStatus(UINT nID);
參數
nID
屬性頁控件的資源識別碼。
傳回值
如果控件值已修改,則為TRUE;否則為 FALSE。
COlePropertyPage::GetObjectArray
傳回屬性頁正在編輯的物件陣列。
LPDISPATCH* GetObjectArray(ULONG* pnObjects);
參數
pnObjects
不帶正負號之長整數的指標,該整數將接收頁面正在編輯的物件數目。
傳回值
指標數位列的 IDispatch
指標,用來存取屬性頁面上每個控件的屬性。 呼叫端不得釋放這些介面指標。
備註
每個屬性頁對象都會維護頁面所編輯物件的介面指標 IDispatch
數位。 此函式會將其 pnObjects 自變數設定為該陣列中的元素數目,並傳回陣列第一個專案的指標。
COlePropertyPage::GetPageSite
取得屬性頁介面的 IPropertyPageSite
指標。
LPPROPERTYPAGESITE GetPageSite();
傳回值
屬性頁介面的 IPropertyPageSite
指標。
備註
控件和容器會合作,讓使用者可以瀏覽和編輯控件屬性。 控件會提供屬性頁,每個頁面都是 OLE 物件,可讓使用者編輯一組相關的屬性。 容器會提供顯示屬性頁的屬性框架。 針對每個頁面,屬性框架會提供支援 介面的頁面網站 IPropertyPageSite
。
COlePropertyPage::IgnoreApply
決定哪些控制件未啟用 [套用] 按鈕。
void IgnoreApply(UINT nID);
參數
nID
要忽略之控件的標識碼。
備註
只有在屬性頁控制件的值已變更時,才會啟用屬性頁的 [套用] 按鈕。 使用此函式來指定控制件在值變更時不會啟用 [套用] 按鈕。
COlePropertyPage::IsModified
判斷使用者是否已變更屬性頁上的任何值。
BOOL IsModified();
傳回值
如果屬性頁已修改,則為TRUE。
COlePropertyPage::OnEditProperty
架構會在編輯特定屬性時呼叫此函式。
virtual BOOL OnEditProperty(DISPID dispid);
參數
dispid
正在編輯之屬性的分派標識碼。
傳回值
默認實作會傳回 FALSE。 此函式的覆寫應該會傳回 TRUE。
備註
您可以覆寫它,將焦點設定為頁面上的適當控件。 默認實作不會執行任何動作,並傳回 FALSE。
COlePropertyPage::OnHelp
當使用者要求在線協助時,架構會呼叫此函式。
virtual BOOL OnHelp(LPCTSTR lpszHelpDir);
參數
lpszHelpDir
包含屬性頁說明檔的目錄。
傳回值
默認實作會傳回 FALSE。
備註
如果您的屬性頁在使用者存取說明時必須執行任何特殊動作,請覆寫它。 默認實作不會執行任何動作並傳回 FALSE,其會指示架構呼叫 WinHelp。
COlePropertyPage::OnInitDialog
架構會在初始化屬性頁的對話框時呼叫此函式。
virtual BOOL OnInitDialog();
傳回值
默認實作會傳回 FALSE。
備註
如果對話框初始化時需要任何特殊動作,請覆寫它。 默認實作會呼叫 CDialog::OnInitDialog
並傳回 FALSE。
COlePropertyPage::OnObjectsChanged
當選擇具有新屬性的另一個 OLE 控制項時,由架構呼叫。
virtual void OnObjectsChanged();
備註
在開發人員環境中檢視 OLE 控件的屬性時,會使用無模式對話框來顯示其屬性頁。 如果選取了另一個控件,則必須為新的屬性集顯示一組不同的屬性頁。 架構會呼叫此函式,以通知變更的屬性頁。
覆寫此函式以接收此動作的通知,並執行任何特殊動作。
COlePropertyPage::OnSetPageSite
當屬性框架提供屬性頁的頁面網站時,架構會呼叫此函式。
virtual void OnSetPageSite();
備註
默認實作會載入頁面的標題,並嘗試從對話資源判斷頁面的大小。 如果您的屬性頁需要任何進一步的動作,請覆寫此函式;您的覆寫應該呼叫基類實作。
COlePropertyPage::SetControlStatus
變更屬性頁控制件的狀態。
BOOL SetControlStatus(
UINT nID,
BOOL bDirty);
參數
nID
包含屬性頁控制件的識別碼。
bDirty
指定屬性頁的欄位是否已修改。 如果欄位已修改,則設定為 TRUE;如果字段尚未修改,則為 FALSE。
傳回值
如果已設定指定的控件,則為TRUE;否則為 FALSE。
備註
如果屬性頁關閉或選擇 [套用] 按鈕時,屬性頁控件的狀態已變更,則會使用適當的值來更新控件的屬性。
COlePropertyPage::SetDialogResource
設定屬性頁的對話框資源。
void SetDialogResource(HGLOBAL hDialog);
參數
hDialog
屬性頁對話框資源的句柄。
COlePropertyPage::SetHelpInfo
指定工具提示資訊、說明檔名,以及屬性頁的說明內容。
void SetHelpInfo(
LPCTSTR lpszDocString,
LPCTSTR lpszHelpFile = NULL,
DWORD dwHelpContext = 0);
參數
lpszDocString
字串,包含顯示在狀態列或其他位置的簡短說明資訊。
lpszHelpFile
屬性頁說明檔的名稱。
dwHelpContext
屬性頁的說明內容。
COlePropertyPage::SetModifiedFlag
指出使用者是否已修改屬性頁。
void SetModifiedFlag(BOOL bModified = TRUE);
參數
bModified
指定屬性頁修改旗標的新值。
COlePropertyPage::SetPageName
設定屬性頁的名稱,屬性框架通常會顯示在頁面的索引標籤上。
void SetPageName(LPCTSTR lpszPageName);
參數
lpszPageName
包含屬性頁名稱的字串指標。