我的应用程序是SID的,其中View是CFormView.
我又新建立了一个Dialog资源及类,在资源中设置其Style为Child,
设置Border为Thin.目的是某些情况下覆盖其默认的Form.在如下代码之后对话框正常显示
m_pHtmlDlg=new CHtmlDlg;
m_pHtmlDlg->Create(IDD_HTML_FORM,this) ;
m_pHtmlDlg->ShowWindow(SW_SHOW); 
可是对话好象接受不了消息.在其上,鼠标失效,按钮无用等...

解决方案 »

  1.   

    用Spy++抓住看看,是不是设置了WS_DISABLED风格。
      

  2.   

    把Style设置为Popup或者Overlapped都没问题
      

  3.   

    m_pHtmlDlg=new CHtmlDlg;
    m_pHtmlDlg->Create(IDD_HTML_FORM,this) ;
    m_pHtmlDlg->ShowWindow(SW_SHOW); this是指MainFrame还是View还是....最好在View的OnCreate里面this为View
    m_pHtmlDlg=new CHtmlDlg;
    m_pHtmlDlg->Create(IDD_HTML_FORM,this) ;
    m_pHtmlDlg->ShowWindow(SW_SHOW); 然后在view OnSize里面
    设置好位置
      

  4.   

    这段代码是放在CMainFrame::OnCreate里的.
      

  5.   

    并且用CSplitterWnd把view分成了2个
      

  6.   

    CSplitterWnd是主视图,可以写在MainFrame里面,这样写:m_pHtmlDlg->Create(IDD_HTML_FORM, &m_wndSplitter);
      

  7.   

    用m_pHtmlDlg->Create(IDD_HTML_FORM, &m_wndSplitter);也没用啊.
      

  8.   

    同意checkyvc6(沉思发挥调整) 
    1)为你要显示的Dialog 创建一个类.
    2)在CFormView 里声名你的m_pHtmlDlg
    3)如过一开始就要显示的话在void CFameView::OnInitialUpdate()
    加上
    m_pHtmlDlg=new CHtmlDlg;
    m_pHtmlDlg->Create(IDD_HTML_FORM,this) ;
    m_pHtmlDlg->ShowWindow(SW_SHOW); 
    为CHtmlDlg 添加button1 
    OnButton1 ()
    {
    AfxMessageBox("hello");
    }
    正常响应.
      

  9.   

    谢谢各位.
    特别感谢checkyvc6(沉思发挥调整) 及 ficher(小鱼儿) ( ).
    问题的解决就如他们2位说.
      

  10.   

    再问一下,MainFram怎么调用View中的涵数或者给View发消息?
      

  11.   

    我用wndSplitter.GetPane( 0, 1 )->SendMessage发消息解决了.