1、控件的事件一般都是由对外的接口引发到,这里定一个接口先:

该接口有一个字符串参数,表示调用者将传入一个字符串,传进来后,我们将取得字符串的长度。

2、添加事件:

事件应该是属于窗口的,所以在Ctrl类上单击右键-》添加:

3、添加一个事件“hello”:

该事件的参数是刚才那个字符串处理的结果,这里是long型。

4、在接口实现里调用事件函数:

[cpp] view plaincopy

 
  1. // COcxEventCtrl 消息处理程序
  2. LONG COcxEventCtrl::MyInterface(LPCTSTR strValue)
  3. {
  4. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  5. CString str = strValue;
  6. int len = str.GetLength();
  7. hello(len);
  8. return 0;
  9. }

事件函数的名字就是事件名称,参数就是在添加事件时候设置的参数。这里我们计算了字符串的长度,然后把结果给了事件函数。控件里面要做到就做完了。

5、响应事件:

新建一个对话框项目,添加你做好的控件,并为其关联一个变量;然后添加一个按钮,在按钮点击消息里,调用控件的对外接口,这里就一个接口:

[cpp] view plaincopy

 
  1. void COcxEventTestDlg::OnBnClickedButton1()
  2. {
  3. m_OcxEvent.MyInterface(L"hello world !");
  4. }

这里我们传入了" hello world  ! "。接口函数调用后就会引发我们定义的事件。

在控件上单击右键,选择添加事件处理:

在实现代码里,添加如下内容:

[cpp] view plaincopy

 
  1. void COcxEventTestDlg::helloOcxeventctrl1(long len)
  2. {
  3. CString str;
  4. str.Format(_T("%d"),len);
  5. AfxMessageBox(str);
  6. }

这里消息响应函数传出了一个值,它就是计算出来的长度,我们把它弹出来看看:

10个字母+2个空格+一个感叹号 = 13.   OK了。

MFC OCX 控件事件的添加和处理的更多相关文章

  1. MFC 设置控件事件对应的函数

    在项目中,右击你想设置的控件,打开属性. 然后找到:控件事件,如果在Visual Studio 2015中操作,显示如图: 然后,以设定单击事件为例: 点击右边的三角,选择 <Edit Code ...

  2. Delphi安装/卸载OCX控件的方法

    delphi  安装卸载ocx 请参见 如下 http://blog.csdn.net/xt_chaoji/article/details/7027298 打开Delphi,关闭所有项目. 1.    ...

  3. html 调用ocx控件

    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x ...

  4. MFC中开发ocx控件,html容器收不到ocx的事件Event

    问题背景: MFC开发ocx控件,主窗口就是ctrl类,主窗口类中调度接口和事件映射添加,执行OK,外部html容器中接收事件成功,如下: ctrl.h中声明事件映射函数 void EVTPENSIG ...

  5. VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

      开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...

  6. c#调用c++制作的基于mfc的ocx控件

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51286926 原文中有问题部分已修改. c#调用c++制作的基于mfc的ocx控件     ...

  7. WPF 添加OCX控件

    1. 在计算机上安装OCX控件 2.创建WPF应用程序 3.打开工具箱 4.单击COM 组件选项卡上,选择安装的控件,,然后单击确定,将控件添加到工具箱 5.在解决方案资源管理器,右键单击UserCo ...

  8. vs2010开发activex(MFC)控件/ie插件(三),js调用ocx控件的接口函数

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50802280   js调用ocx控件的接口函数,先看demo效果:      简单测试过程 ...

  9. 在WPF中添加Windows Form控件(包括 ocx控件)

      首先,需要向项目中的reference添加两个dll,一个是.NET库中的System.Windows.Forms,另外一个是WindowsFormsIntegration,它的位置一般是在C:\ ...

随机推荐

  1. mysql安装到最后一步无响应的问题超简单最有效解决

    mysql安装到最后一步无响应的问题超简单最有效解决 无论你是安装过还是没安装过,通过此方法都可以解决.之前我的机器和服务器就是都到最后一步卡住,上网搜索方法都无果.后自己尝试了很多次,亲测64位机和 ...

  2. ch8 faux列

    在一个布局中,假设有导航元素和内容元素,切给他们都分别应用了背景,理想情况下,背景应该拉长到整个布局的最大高度,从而形成列的效果,但是实际上,因为导航元素没有扩展到最大高度,所以它们的背景不会拉长,如 ...

  3. 081、Java数组之数组传递

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  4. c# Thread、ThreadPool、Task的区别

    Thread与ThreadPoll 前台线程:主程序必须等待线程执行完毕后才可退出程序.Thread默认为前台线程,也可以设置为后台线程 后台线程:主程序执行完毕后就退出,不管线程是否执行完毕.Thr ...

  5. 手把手教你如何在Presentation中拿高分

    掐指一算,留学生们最近应该马上遇到Presentation作业.一般来说,这类的任务会占最终成绩的20-30%,对于期末成绩有一定的影响,如果想拿高分,就需要好好的准备.所以本文算是系列里的第一篇(扫 ...

  6. jquery解析

    OutOfMemory.CN β 聚客 代码 专栏 教程 Maven Gitter 标签 登录注册  好书:重构 改善既有代码的设计[京东   亚马逊] | 敏捷软件开发原则.模式与实践[京东   亚 ...

  7. Python中的*可变参数与**关键字参数

    1.定义了一个需要两个参数的函数 def print_str(first, second): print first print second if __name__ == "__main_ ...

  8. C++ 类 与 static

    背景 从学习C++到使用现在,发现很多新的东西,正好整理一下. static 为静态,指是当类编译加载的时候,内存就会开辟存储空间的. static 数据成员 在类中,static 可修饰 类中的成员 ...

  9. day04-Python运维开发基础(位运算、代码块、流程控制)

    # (7)位运算符: & | ^ << >> ~ var1 = 19 var2 = 15 # & 按位与 res = var1 & var2 " ...

  10. 编程题目 定义栈的数据类型,请在类型中实现一个能够得到栈最小元素的minx函数。

    首先自己用 节点 实现了 栈 这种数据类型 为了实现题目了要求,我使用的两个栈. 一个栈 用来 push pop 用户的数据, 另外一个栈用来存放 最小元素(涉及元素比较) 代码如下: #!/usr/ ...