mfc 动态为控件添加事件1
知识点:
认识窗口过程
GetWindowLong
SetWindowLong
为动态控件绑定事件 一、获取窗口过程 二、设置新窗口过程
、书写一个新窗口过程函数
窗口过程格式
LRESULT CALLBACK WindowProc( HWND hwnd, // 窗口句柄 UINT uMsg, // 消息事件 WPARAM wParam, // 消息参数1
LPARAM lParam //消息参数2
); CallWindowProc 把消息事件传递给以前的窗口过程
LRESULT CallWindowProc( WNDPROC lpPrevWndFunc, // 指向前一个窗口过程 HWND hWnd, // 窗口句柄 UINT Msg, // 消息事件 WPARAM wParam, // 消息参数1 LPARAM lParam // 消息参数2
); 、注册新的窗口过程
三、为动态控件绑定事件
EN_CHANGE
WM_CHAR
WM_LBUTTONDOWN WNDPROC oldProc;
LRESULT CALLBACK newProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
if (uMsg==WM_COMMAND)
{
switch(LOWORD(wParam)) //0xFFFF FFFF
{
case :
if (HIWORD(wParam)==EN_CHANGE)
{
TRACE(" myedt 控件 产生EN_CHANGE消息\n");
// 添加相应事件处理函数
}
break;
case :
if (HIWORD(wParam)==EN_CHANGE)
{
TRACE(" myedt2 控件 产生EN_CHANGE消息\n");
// 添加相应事件处理函数
}
break;
}
} return CallWindowProc(oldProc,hwnd,uMsg,wParam,lParam);
} // CDialog_Dynamics_Create 消息处理程序 void CDialog_Dynamics_Create::OnBnClickedButton1()
{
//替换窗口过程
//1获取当前窗口过程
oldProc=(WNDPROC)GetWindowLong(m_hWnd,GWL_WNDPROC);
//替换窗口过程
SetWindowLong(m_hWnd,GWL_WNDPROC,(LONG) newProc); }
mfc 动态为控件添加事件1的更多相关文章
- mfc 动态为控件添加事件2
重载窗口过程 为动态控件绑定事件 一.重载窗口过程处理函数 CWnd::WindowProc virtual LRESULT WindowProc( UINT message, WPARAM wPar ...
- 如何给ActiveX控件添加“事件”“属性”“标准事件”“自定义事件”等一些相关操作
上一篇小编带大家熟悉了一下ActiveX的建立以及相关的概念,(http://blog.csdn.net/u014028070/article/details/38424611) 本文介绍下如何给控件 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇 第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇 第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是 ...
- 【转载】MFC动态创建控件及其消息响应函数
原文:http://blog.sina.com.cn/s/blog_4a08244901014ok1.html 这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)h ...
- MFC动态创建控件及其消息响应函数
这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba ...
- repeater中后台动态为控件添加属性
在此贴出repeater中的ItemDataBound事件中的代码: private void ItemDataBound(object sender, RepeaterItemEventArgs e ...
- JS脚本动态给元素/控件添加事件
最近突然要用到JS脚本动态给元素添加事件.如TextBox的onclick事件.但有的onclick事件原先已经定义了相应代码!这里又不能替代原有方法,而JS脚本里面有个方法可以给控件在原有事件的基础 ...
- MFC List Control 控件添加单元格编辑,实现可编辑重写
在实现随机生成四则运算的个人项目中,目前已经完成基本功能,想要把程序变成一个Windows界面的程序.原本以为学习过MFC,应该很快就能完成.但是由于以前用的都是VC6.0,这次用了VS2010,稍微 ...
随机推荐
- Expo大作战(十二)--expo中的自定义样式Custom font,以及expo中的路由Route&Navigation
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- [Android] 修图工具Draw9patch使用小结(附ubuntu快捷截图方法)
做项目的时候,素材图遇到点问题,然后老大大概给我讲了讲android下面图片格式.9.png和draw 9-patch的用法,感觉很清楚也很有用,所以记录一下. 原文地址请保留http://www.c ...
- Google 和 Facebook 如何大规模处理 IT 事件管理 —— 2016 SRE 大会之我见
[编者按]本文作者为 Maria Arbisman,主要介绍 Google 与 Facebook 两大巨头是如何大规模处理 IT 事件管理.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 2 ...
- beego快速入门
beego的官方网址:https://beego.me 参考文档:https://beego.me/quickstart 1:安装 您需要安装 Go 1.1+ 以确保所有功能的正常使用. 需要已经设置 ...
- As3截图转换为ByteArray传送给后台node的一种方法
最近将以前用As3+Php做的一个画板拿出来改成了As3+nodejs(expressjs4). Node: 1. 将图片存放的路径设置为静态公开的路径. app.use(express.static ...
- mssql 监控随笔
性能监控列表: • Memory: Pages/sec ( 从硬盘上读取或写入硬盘的页数(参考值:00~20) • Physical Disk: % Disk time 或 Physi ...
- 【SPL标准库专题(7)】 Datastructures:SplHeap & SplMaxHeap & SplMinHeap
堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现.根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆.二叉堆还常用于排序(堆排序). 类摘 ...
- sshpass 绕过ssh 密码交互式验证
经常我们使用脚本登入服务器的时候,如果使用ssh 命令,经常会提示密码输入,我们不得不手动输入密码,因为ssh 没有 密码的选项. 为了能绕过交互式验证,我们使用sshpass命令解决这个问题: 1. ...
- Mysql引擎innodb_pool的作用
innodb_buffer_pool的简介: InnoDB主索引是聚簇索引,索引与数据共用表空间,对于InnoDB而言,数据就是索引,索引就是数据.InnoDB缓存机制和MyISAM缓存机制的最大区别 ...
- ArcGIS Earth1.9最新版安装和使用教程
1.下载ArcGIS Earth 官网下载地址:https://www.esri.com/en-us/arcgis/products/arcgis-earth 在这个网页的最下面填上信息,就可以下载了 ...