属性、方法以及事件的添加
图5 属性的添加
图6 方法的添加
对ActiveX控件属性、方法和事件的添加均有库存和自定义两种。其中对属性和方法的添加在MFC ClassWizard对话框的Automation页中通过按钮"Add Property…"和"Add Method…"弹出如图5和图6所示的添加属性和添加方法的对话框来完成。对于库存属性和方法,可以直接从External name组合框的下拉列表中选取,Implementation项将自动设置为Stock。对于自定义属性和方法的添加与在自动化对象中为接口添加属性和方法的过程一样,ClassWizard将在.odl文件和控件类生成相应的代码,下面给出的是在控件类中实现的部分分发映射代码:
![](http://www.yesky.com/image20010518/113237.jpg)
图5 属性的添加
![](http://www.yesky.com/image20010518/113239.jpg)
图6 方法的添加
对ActiveX控件属性、方法和事件的添加均有库存和自定义两种。其中对属性和方法的添加在MFC ClassWizard对话框的Automation页中通过按钮"Add Property…"和"Add Method…"弹出如图5和图6所示的添加属性和添加方法的对话框来完成。对于库存属性和方法,可以直接从External name组合框的下拉列表中选取,Implementation项将自动设置为Stock。对于自定义属性和方法的添加与在自动化对象中为接口添加属性和方法的过程一样,ClassWizard将在.odl文件和控件类生成相应的代码,下面给出的是在控件类中实现的部分分发映射代码:
…… // Dispatch maps //{ {AFX_DISPATCH(CSample68Ctrl) CString m_message; afx_msg void OnMessageChanged(); afx_msg short GetXPos(); afx_msg void SetXPos(short nNewValue); afx_msg short GetYPos(); afx_msg void SetYPos(short nNewValue); afx_msg short MessageLen(); //}}AFX_DISPATCH DECLARE_DISPATCH_MAP() // Dispatch and event IDs public: enum { //{ {AFX_DISP_ID(CSample68Ctrl) dispidMessage = 1L, dispidXPos = 2L, dispidYPos = 3L, dispidMessageLen = 4L, //}}AFX_DISP_ID }; …… BEGIN_DISPATCH_MAP(CSample68Ctrl, COleControl) //{ {AFX_DISPATCH_MAP(CSample68Ctrl) |