
回调函数中使用MFC类的成员或对话框控件的简单方法
发布日期:2021-05-07 00:35:21
浏览次数:18
分类:技术文章
本文共 875 字,大约阅读时间需要 2 分钟。
一:目的
1、在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量、类成员函数,亦或者对话框控件的句柄。由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制...所以在回调函数中不能够直接访问类成员,或者操纵控制MFC对话框的控件。虽然可以把回调函数设为类的静态成员函数,以便消除this指针的限制,但诸多不便(比如只能访问静态成员等)仍让人不能够顺畅访问类成员。而下面这种方法便无需把回调函数设为类的静态成员,也能够顺利的访问类的成员和对话框控件。
二、参考
1、
- 总结:很好用
- 内容:
在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量、类成员函数,亦或者对话框控件的句柄。由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制...所以在回调函数中不能够直接访问类成员,或者操纵控制MFC对话框的控件。
虽然可以把回调函数设为类的静态成员函数,以便消除this指针的限制,但诸多不便(比如只能访问静态成员等)仍让人不能够顺畅访问类成员。
而下面这种方法便无需把回调函数设为类的静态成员,也能够顺利的访问类的成员和对话框控件。
1。先在对话框类的cpp文件添加全局的对话框指针。
CxxxDlg* g_pDlg = NULL;
2。在OnInitDialog中添加把this指针赋予该对话框指针;
BOOL CxxxDlg::OnInitDialog()
{ CDialog::OnInitDialog();......
g_pDlg = this;
}
有了以上两步,就可以在回调函数中直接用g_pDlg操纵类的成员和对话框控件了!
void __stdcall 回调函数(......)
{CxxxDlg *pDlg = (CxxxDlg*)g_pDlg; //直接使用就可以了
pDlg->m_list_info.AddString(_T("test")); //m_list_info list控件的变量
}
三、操作:
1、
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月11日 21时28分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
卡尔曼滤波器的特殊案例
2019-03-04
视觉实战|使用人工神经网络进行图像分类
2019-03-04
3D感知技术及实践
2019-03-04
北大读博手记:怎样完成自己的博士生涯?非常具有指导性!
2019-03-04
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
2019-03-04
基于OpenCV实战:对象跟踪
2019-03-04
干货|python基础知识总结
2019-03-04
RegExp正则表达式-基本语法
2019-03-04
JavaScript 性能优化-防抖和节流
2019-03-04
属性闭包求解算法——数据库考试复习
2019-03-04
砍树问题(二分法)
2019-03-04
poj3260The Fewest Coins
2019-03-04
poj3617
2019-03-04
poj3069
2019-03-04
Java洛谷P5461 赦免战俘讲解
2019-03-04
关于 form表单 嵌套问题的解决方案
2019-03-04
论转发与重定向参数传递问题(jsp+servlet项目开发遇到的问题)
2019-03-04
Android—— log.e(),log.d(),log.i()等的区别
2019-03-04