对话框类响应ONOK消息,然后向父窗口发消息

解决方案 »

  1.   

    如果你是想关闭这个非模式对话框,则需:
    void CMyDialog::OnOK()
    {
        DestroyWindow();
    }
    而不能使用OnOK()或OnCancel()函数。
    如果你是想将对话框中的数据传递给视图,则需使用SendMessage(int msg, int wParam, int lParam )传递数据。
      

  2.   

    OnOK()
    {
        CWnd *pWnd;
        pWnd=GetParent();
        if(pWnd)
        {
            pWnd.SendMessage(WM_COMMAND,........) // 之后就很easy了^_^
        }
        return;
    }
      

  3.   

    //MyDialog.h
    CMyDailog:public CXXXX
    {
    public:
      bool m_hIsOKClicked;
    };//MyDialog.cpp
    CMyDialog::CMyDialog(...)
    :m_hIsOKClicked(false),
    ...
    {
    }CMyDialog::OnOK()
    {
    m_hIsOKClicked=true;
    }//UseDialog.cpp//code in one place
    CMyDialog*dlg;
    dlg=new CMyDialog(...);
    dlg->Create(...);//code in other place
    if(dlg->m_hIsOKClicked)
    {//OK被点击
    }
      

  4.   

    谢谢大家,我使用发消息的方法,果然解决了这个问题,就是在按下ok以后,
    向视图发出消息。
    现在我还有个问题,我的vc现在不能自动出提示代码了,
    比如点操作符或者"->"运算符后不提示可能用到的函数,我重装了vc还是不行,
    难道是msdn的问题?
      

  5.   

    删除 *.ncb 文件.重新编译 就Ok
      

  6.   

    删除*.ncb?
    可是我每一个程序都出现这样的问题,挺苦恼的
      

  7.   

    这好像跟程序编写有关,常出现在添加自定义类后。可能是添加的不太规范吧。本人猜想。以前碰到过,现在对MFC熟了就没有了。
      

  8.   

    这种问题和装msdn没关系吧???