当前位置:编程学习 > C/C++ >>

利用MFC开发ActiveX控件

 

  利用MFC的Application Wizard我们可以方便的创建一个工程,首先在工程类型中选择MFC ActiveX Control,然后选择在工程中创建多少个控件。在接下来的对话框中并且为每个控件输入相关信息,通过Edit Name按钮可以为控件指定名称,通过Advanced按钮可以为控件指定各种附加特性,此外你还可以将控件指定为一个继承了某种现有窗口类的子类。在本节的例子中我们创建三个控件,分别是:

  • 普通窗口控件 CSam_windowCtrl
  • 无窗口控件 CSam_nowindowCtrl
  • EDIT窗口控件 CSam_editwindowCtrl

在工程创建完毕后你就可以编译并测试控件了,但是这时候的控件还不能做任何事情。我们需要为控件添加方法和属性。简单的讲,方法就相当与类中的函数调用,而属性就相当与类中的成员变量。

  假设在普通窗口控件中我们将显示一份学生资料,包括姓名,出生年月,班级名称,为了能够设置这些数据,我们为控件添加一个方法。选择Class Wizard,并选中对话框中的Automation页,按下Add Method按钮以添加消息,然后在弹出的对话框中输入相关信息。我们为新添加的方法取名为SetMertial,同时指定三个参数LPCTSTR pszName,LPCTSTR pszBirth,LPCTSTR pszClass,返回值设置为void,在保存后Class Wizard会生成一个函数,该函数的名称就是你所指定的方法名称。此外我们还添加一个属性用于让用户设置显示文字的颜色。在添加属性对话框中为属性取名为TextColor,并且接收的参数为OLE_COLOR,并且将实现方法设定为Get/Set Methods。在保存后Class Wizard会为你生成GetXXX/SetXXX两个函数XXX就代表你所指定的属性名,当控件容器更改属性时就通过这两个函数。

  然后我们为CSam_windowCtrl添加三个成员变量保存这些学生资料和一个用于保存颜色,当然别忘了在构造函数中对它们初始化。然后修改和添加与方法和属性有关的函数,我们可以看到在数据被修改后都会调用Invalidate()使窗口重绘。

// 添加成员变量

class CSam_windowCtrl : public COleControl

{

    DECLARE_DYNCREATE(CSam_windowCtrl)

 

// Constructor

public:

    CSam_windowCtrl();

    CString m_szName,m_szBirth,m_szClas

补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,