全局函数中访问dlg类成员变量,使用this指针
来源:互联网 发布:杭州淘宝代运营hzmytp 编辑:程序博客网 时间:2024/06/01 08:20
随便写个测试dlg对话框程序,其中用到了opencv中的void on_mouse( int event, int x, int y, int flags, void* param ),功能是想实现鼠标获取图像上的像素点。
1、这个on_mouse()不能作为dlg对话框成员函数,只能作为静态全局函数进行调用。
2、在on_mouse()函数中需要访问到dlg类中成员变量。解决方式:
1)先申请个全局void类型指针: void *pdlg;
2)在dlg InitDialog中,将该void指针初始化为this: pdlg= this;
3)再将void类型强制转换成dlg类型:
CInfraredTestDlg *dlg;
dlg = (CInfraredTestDlg *)pdlg;
贴上on_mouse()内代码。下面
static void on_mouse( int event, int x, int y, int flags, void* param )
{
CInfraredTestDlg *dlg;
dlg = (CInfraredTestDlg *)pdlg;
if( !dlg->m_pImage )
return;
if( dlg->m_pImage->origin )
y = dlg->m_pImage->height - y;
if( event == CV_EVENT_LBUTTONDOWN )
{
dlg->m_pt = cvPoint(x,y);
dlg->m_imgpix[dlg->m_i].x = dlg->m_pt.x;
dlg->m_imgpix[dlg->m_i].y = dlg->m_pt.y;
dlg->add_remove_pt = 1;
points[dlg->m_i]= cvPointTo32f(dlg->m_pt);
cvCircle( dlg->m_pImage, cvPointFrom32f(points[dlg->m_i]), 3, CV_RGB(0,255,0), -1, 8,0);
dlg->m_i++;
}
}
- 全局函数中访问dlg类成员变量,使用this指针
- 全局的callback函数访问一个类的成员变量
- this指针访问成员函数问题
- this指针访问成员函数问题
- this指针在类成员函数中用法
- 在成员函数中delete this指针
- VS2005 MFC 对话框 全局函数访问成员变量
- VC多线程中全局函数如何调用对话框类成员变量及成员函数
- c++ 如何把this指针传入成员函数 像全局函数一样调用成员函数
- 全局函数访问类成员方法
- 类中的this指针 一个类的指针指向NULL去访问该类的成员函数
- c++的this指针与空指针类成员函数访问
- this指针指向当前调用对象,只是用于类的非静态成员函数。静态函数和全局函数 无当前对象,无this指针。
- c++ 全局函数指针和类成员函数指针
- 函数指针(全局函数/类成员函数)和函数对象
- 类 this指针 const成员函数
- C++类中成员变量和函数的访问范围
- static 静态成员变量 静态成员函数 类中使用
- css:文本两端对齐
- 四六级查分工具完善版
- FMS
- 驱动浅析(观看韦东山视频)
- css 自动换行
- 全局函数中访问dlg类成员变量,使用this指针
- struts.devMode也就是struts的开发模式
- select 函数使用指难
- 小编程之路
- log4j配置祥解
- SQL添加字段、删除字段、调整字段顺序
- MySQL 性能优化的最佳20多条经验分享
- HowNet
- viewport meta tag