返回信息流恩我又来了。。。
这次我想实现:在一个对话框中,当鼠标移到某个按钮控件上时对话框的其他几个编辑框对应出现文字,思路是对该按钮定义一个类继承CBUTTON类,然后重写OnMouseMove,然后在OnMouseMove里调用对话框类的某个函数以实现在对话框出现文字。
现在问题出在如何在OnMouseMove函数里调用对话框类里的函数?我是这样实现的:
CTest3Dlg dlg = this->GetParent();
dlg.OnShowDetail(); //此即为显示文字的函数
然后编译通过,但运行时鼠标一移到按钮上时就报error了。求助。。。。
这是一条镜像帖。来源:北邮人论坛 / cpp / #37419同步于 2010/4/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
已解决[求助]关于mfc类之间的互相调用
youlingman
2010/4/3镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
恩,出来这个错误。。。
cannot convert from 'class CWnd *' to 'class CTest3Dlg *'
【 在 wks 的大作中提到: 】
: 为什么不是CTest3Dlg *pDlg = this->GetParent();呢?
OnMouseMove函数是定义了一个新的按钮类里面重写的,不是原来对话框类里,我的要求是要鼠标移到按钮上时才有响应。
【 在 zwp 的大作中提到: 】
: 在同一个对话框中几个控件不需要调用什么指针呀。直接类里写函数,直接调用就行啦。
这个m_pMainDlg是什么?貌似CWinApp类里没这个?有错误出现:
error C2039: 'm_pMainDlg' : is not a member of 'CWinApp'
PS:我的是基于对话框的。
【 在 vivienluke 的大作中提到: 】
: AfxGetApp()->m_pMainDlg;
: 这也可以得到主窗口(基于对话框的应用程序)的指针
这个强制类型转换一下就可以了
【 在 youlingman 的大作中提到: 】
: 恩,出来这个错误。。。
: cannot convert from 'class CWnd *' to 'class CTest3Dlg *'
【 在 youlingman 的大作中提到: 】
: 恩,出来这个错误。。。
: cannot convert from 'class CWnd *' to 'class CTest3Dlg *'
你给出的这个东西给编译过么?一边是Dlg对象,一边是指针?
还有,你点CTestDlg dlg,相当于创建于一个新的对话框。搞清楚指针和对象的区别
恩编译过,程序也能出来,就是鼠标移到那个按钮上时才会崩溃。。。
现在貌似可以出来了。恩这个getparent是Google来的,忘了去查MSDN了。。。
谢谢各位啦,谢谢ls和wks师兄,问题解决,结贴了~~~
【 在 hs 的大作中提到: 】
: 你给出的这个东西给编译过么?一边是Dlg对象,一边是指针?
: 还有,你点CTestDlg dlg,相当于创建于一个新的对话框。搞清楚指针和对象的区别