Events MFC-为对话框按钮添加事件处理程序

Events MFC-为对话框按钮添加事件处理程序,events,button,mfc,dialog,Events,Button,Mfc,Dialog,我有一个CView类和一个对话框,我想在用户单击对话框对象的“接受”按钮后从中获取一些数据,所以我在CView类中为按钮及其处理程序添加了一个事件,所有这些都是通过Visual Studio 2010菜单完成的,所以我没有搞错代码 CView clas: BEGIN_MESSAGE_MAP(CSurface3DView, CView) ON_BN_CLICKED(ID_RANGE_OK, &CSurface3DView::OnBnClickedRangeOk) END_MESSAGE

我有一个CView类和一个对话框,我想在用户单击对话框对象的“接受”按钮后从中获取一些数据,所以我在CView类中为按钮及其处理程序添加了一个事件,所有这些都是通过Visual Studio 2010菜单完成的,所以我没有搞错代码

CView clas:

BEGIN_MESSAGE_MAP(CSurface3DView, CView)
  ON_BN_CLICKED(ID_RANGE_OK, &CSurface3DView::OnBnClickedRangeOk)
END_MESSAGE_MAP()   
...
void CSurface3DView::OnBnClickedRangeOk()
{
 //things i need to do

}
问题是,当我单击OK按钮时,它不会调用OnBnClickedRangeOk()函数

我也可以从Dialog类调用CView类中的函数,但是我不能使用父类的实例,因为我需要包含它的头,这会导致循环包含,这可以通过在Dialog头中声明CView类而不包含它来解决,但是它的方法不能被访问

可能无法将对话框按钮的消息句柄放在dialog类之外?如何仅在按下对话框按钮时在CView类中运行某个函数

编辑:


现在问题解决了,我使用CDialog的SendMessage(hWnd,MESSAGE,…)方法将一条消息发送给父级,我在CDialog的构造函数中得到了该指针,因此我不必声明父级的特定类,也不存在包含问题


我在这里找到的具体操作:

现在解决了,我使用CDialog的SendMessage(hWnd,MESSAGE,…)方法将一条消息发送给父级,我在CDialog的构造函数中得到了该指针,因此我不必声明父级的特定类,也不需要包含问题请不要在问题中给出答案,把它作为答案写下来,然后接受它。