1、首先在在项目上面右击添加类,如下图所示:
image
2、点击添加ActiveX控件中的MFC类
image
3、找到需要添加的ActiveX类。
image
4、点击完成即可。
image
5、此时转到资源视图,打开如下视图。可能工具箱中并没有我们刚刚添加的控件。这时,需要我们收到载入。
image
6、右击工具箱中的选择项按钮:
image
7、在选择工具箱项中找到刚刚添加的组件即可。(注:ActiveX组件它是建立在OLE于COM技术基础之上的技术)
image
8、右击项目,使用类向导,添加变量以及事件映射。
image
方法2:
上面介绍的方法过于臃肿,其实还有简单的方法。
1、直接右击,选择添加ActiveX控件即可。
image
2、然后找到自己需要添加的控件名称
image
3、完成后,右击,可以为控件添加变量以及添加事件处理程序与Dlg类建立联系。
imageimage
注:选择自定义的控件。即ActiveX控件会自动添加对应的类。这样就可以使用了。不过,这种方法需要重复使用。
还有就是这种方法与上面方法添加的类,有点小区别,但建立的类,无论是.h文件还是.CPP文件内容差不多。
对比以下两张图,分别是对同一个控件添加成员变量以及事件处理程序。
对于第一张图,它会在Cdemo4Dlg类中生成定义好的成员变量,以及控件本身生成的类。
注:类的生成要看控件的种类,自定义的控件,比如说ActiveX控件它会自动生成一个单独的类,而系统本身自带的控件并不会生成一个单独的类。
对于第二张图,它是针对Cdemo4Dlg类中生成的方法。
1: BEGIN_EVENTSINK_MAP(Cdemo4Dlg, CDialogEx) //表示时间映射的开始
2: ON_EVENT(Cdemo4Dlg, IDC_MONTHVIEW1, 4, Cdemo4Dlg::SelChangeMonthview1, VTS_DATE VTS_DATE VTS_PBOOL)
3: END_EVENTSINK_MAP() //表示时间映射的结束
4:
5:
6: void Cdemo4Dlg::SelChangeMonthview1(DATE StartDate, DATE EndDate, BOOL* Cancel)
7: {
8: // TODO: 在此处添加消息处理程序代码
9: //int iYear = m_Month.get_Year()//此m_Month为我们定义的成员变量。
10:
11: }
image
1、控件的事件一般都是由对外的接口引发到,这里定一个接口先:该接口有一个字符串参数,表示调用者将传入一个字符串,传进来后,我们将取得字符串的长度。
2、添加事件:
事件应该是属于窗口的,所以在Ctrl类上单击右键-》添加:
3、添加一个事件“hello”:
该事件的参数是刚才那个字符串处理的结果,这里是long型。
4、在接口实现里调用事件函数:
[cpp] view plaincopy
// COcxEventCtrl 消息处理程序
LONG COcxEventCtrl::MyInterface(LPCTSTR strValue)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CString str = strValue
int len = str.GetLength()
hello(len)
return 0
}
事件函数的名字就是事件名称,参数就是在添加事件时候设置的参数。这里我们计算了字符串的长度,然后把结果给了事件函数。控件里面要做到就做完了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)