如何实现CDialogEx::OnOK()中的传数据功能但又不关闭对话框?

如何实现CDialogEx::OnOK()中的传数据功能但又不关闭对话框?

问题描述:

请问大家,我有一个对话框类Display,其中一个函数给一个和变量赋了值,用了
CDialogEx::OnOK()把值传给View类中的DoModal,并在View类中有一个变
量来接收Display对话框中的变量的值。但是这样的话,每次Display对话框点了按钮
都会消失,如果不加CDialogEx::OnOK()又不能把值传到View中,请问该怎么实现
不关闭对话框,但是在View类中可以在每一次点击Display对话框按钮的时候获得值呢?
以下是代码:

 void Display::OnBnClickeddsift()
{
    // TODO: Add your control notification handler code here
    UpdateData();
    if (m_intDisp == 0){
        m_intSift = 1;
    }

    CDialogEx::OnOK();
}                                                          //Display对话框中按钮的代码


void CSIMSView::OnDisplay()
{
    // TODO: Add your command handler code here
    Display disp;

    if (disp.DoModal()==IDOK){
        m_IntDISP = disp.m_intDisp;
        if (m_IntDISP == 3 || m_IntDISP == 4)
            m_DSMAJOR = disp.m_dsMajor;
        Invalidate();                                     
    }
}                                                         //View类中Display对话框的代码,要求每次
                                                          //点击Display中的按钮都能把值传到View中

求各位大神解答!感激不尽!

获取View的句柄,然后自定义一个消息,对话框中PostMessage发送数据过去

为什么一定要用OnOK,直接sendmessage不是很好吗?

OnOK点击后会关闭是因为 默认给他的资源ID是IDOK 取消的是IDCANCEL 当点击按钮后调用endDialog()关闭对话框,你可以自己改变他的资源id就好了,然后自定义这个按钮的响应函数,在函数里传递你想要的数据信息