我在一个单文档中定义了一个非模对话框,,
需要通过点击非模中的按钮操纵View里的函数,,
请问需要怎样!!
我试过SendMessage,可是执行后就推出主程序!!
不知道为什么,请大侠指点!!!!!

解决方案 »

  1.   

    SendMessage应该可以的,你是怎么用的阿?
      

  2.   

    SendMessage(hWnd,WM_TEST,0,0)
    自己定义的消息!!#define WM_TEST WM_USER+5
    ON_MESSAGE(WM_TEST,EndMisson)afx........
      

  3.   

    ON_MESSAGE(WM_TEST,EndMisson)
    你自定义的消息,是如何实现的啊, EndMisson是要结束任务吗?
    代码贴出来看看
      

  4.   

    EndMisson是结束非模对话框!!
    代码没带来!!
      

  5.   

    加一个全局的窗口指针指向view。
      

  6.   

    #define WM_TEST WM_USER + 5 
    ON_MESSAGE(WM_TEST,EndMisson)
    afx_msg void EndMisson();bool CMyFormView::EndMisson()
    {

    if( pdlg1 != NULL )
    {
    pdlg1->DestroyWindow();
    delete pdlg1;
    pdlg1 = NULL;

    }
    return true;}
      

  7.   

    1、SendMessage 、PostMessage
    2、创建对话筐时把当前指针传递过去
      

  8.   

    #include "mainfrm.h"
    ((CSDIView*)((CMainFrame*)(AfxGetApp()->m_pMainWnd))->GetActiveView())
      

  9.   

    得到View类指针就可以操纵成员函数了
      

  10.   

    同意 bluebohe(薄荷)的做法,得到VIEW类的指针;
    CsdiView *pView = (CsdiView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView();
    sdi->Funx();Funx()为VIEW 类的函数。
      

  11.   

    如果你的视图类是CYourView,那么:
    CMainFrame * pM=(CMainFrame *)AfxGetMainWnd();
    CYourView * pV=(CYourView *)pM->GetActiveView();
    现在你可以调用你的函数了。
    pV->YourFunction(....)
      

  12.   

    谢谢大家,,,
    哈!!
    我懂了!!
    现在可以结帖了!!
    感谢bluebohe(薄荷)