很纠结的一个问题,我用m_wndSplitter分割了两个窗口,一个shipview,一个splitview,菜单栏里有一个菜单是工作板,下面有显示和隐藏两个子菜单,现在的问题是我必须先单击下shipview窗口,再点击显示,对话框才能显示出来,在splitview上操作,再单击显示,无法显示对话框,有没有什么方法让对话框始终都能显示呢,有人说把菜单的响应函数都加在框架类里,加了以后倒是能显示了,关键是对话框上的按钮无法响应了,都是一些发送数据的按钮,发送数据的函数在shipview类里,所以很纠结,能不能有大神帮帮我,不胜感激。

解决方案 »

  1.   

    对话框上的按钮的BN_CLICKED响应你肯定是夹在该对话框类中啊,怎么放到View类中呢?BN_CLICKED是通过WM_COMMAND来传递的,WM_COMMAND是发送给控件的父窗口的~
      

  2.   

    这没问题,是用的mscomm控件,串口发数,对话框发送指令的时候,
    CMainFrame* pMain=(CMainFrame*)AfxGetApp()->m_pMainWnd;
        CShipView* pView=(CShipView*)pMain->GetActiveView();
        pView->m_MSComm.SetOutput(COleVariant(v1));   
    现在就是显示的函数放在框架类里,点击发送按钮就发不出数了,有什么办法么