第24節(2 / 3)

Extended:這些是由容器處理的屬性,一般包括大小和在屏幕上的位置。

Custom:由控件開發者添加的屬性。

使控件具有多於一個屬性頁

首先在**ctl.cpp中找到Property Pages,代碼如下:

BEGIN_PROPPAGEIDS(CClockCtrl, 2)

PROPPAGEID(CClockPropPage::guid)

PROPPAGEID(CLSID_CColorPropPage)

END_PROPPAGEIDS(CClockCtrl)

需要注意的是要顯示幾個屬性頁BEGIN_PROPPAGEIDS(CClockCtrl, 2)中的代碼為幾,如果沒有修改或修改錯誤,會產生不可預料錯誤。

要增加標準屬性,在_DClock上點擊右鍵,選擇增加屬性,選中Stock,例如選擇背景色和前景色

接下來會在Clock.odl下生成以下代碼:

dispinterface _DClock

{

properties:

[id(DISPID_BACKCOLOR), helpstring("屬性 BackColor")] OLE_COLOR BackColor;

[id(DISPID_FORECOLOR), helpstring("屬性 ForeColor")] OLE_COLOR ForeColor;

methods:

[id(DISPID_ABOUTBOX)] void AboutBox();

};

接下來新增自定義屬性,方法同上,隻是需選中“成員變量”或“get/put”

會自動生成成員變量:m_Interval,和成員函數OnIntervalChanged。

接下來添加代碼:

void CClockCtrl::OnIntervalChanged(void)

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加屬性處理程序代碼

if(m_Interval<0 || m_Interval>6000)

{

m_Interval=2000;

}

KillTimer(1);

SetTimer(1,m_Interval/1000*1000,NULL);

SetModifiedFlag();

}

測試:運行ActiveX測試器,選擇control---〉Invoke Methods對m_Interval進行修改。▽思▽兔▽網▽文▽檔▽共▽享▽與▽在▽線▽閱▽讀▽

為編輯框增加成員變量MFC ClassWizard-->Member Variables-->Add Member Variable-->

Optional property name: