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: