我一个同事,在软件设计当初,主视没有继承CFormView类(继承CView),到了项目后期才发现不太妥!程序的主页面由多个Dialog加ClassWizard自产生的View,现在我要映射每个按钮的控制变量,使能对Dialog里的Button进行控制。

解决方案 »

  1.   

    我一个同事,在软件设计当初,主视没有继承CFormView类(继承CView),到了项目后期才发现不太妥!程序的主页面由多个Dialog加ClassWizard自产生的View,现在我要映射Dialog中Button的控制变量,使能对其进行控制。Help me!
      

  2.   

    可以将视图从CView改成CFormView的
    1.添加一个对话框,对应的新类(CMyFormView)从CFormView派生出来
    2.在InitInstance函数中,将文档模板pDocTemplate = new CSingleDocTemplate(
    IDR_MAINFRAME,
    RUNTIME_CLASS(CViewToFormDoc),
    RUNTIME_CLASS(CMainFrame),
    RUNTIME_CLASS(CXXXXXXView));中的CXXXXXXView改成CMyFormView;
    3.就这样OK了
      

  3.   

    忘了说了,CMyFormView的对话框属性要设成Child Style和None Border
      

  4.   

    首先,CDialogBar是从CControlBar继承过来的,而不是继承自CDialog。从你的叙述中可以推测CDialogBar的父窗口是CMainFrame,如果你想在CDialogBar中的按扭被按下时做一些事,可以直接在CMainFrame中用ON_COMMAND(IDC_BUTTON/*CDialogBar中Button的ID号*/,OnButton)或ON_NOTIFY(BN_CLICKED,IDC_BUTTON,OnButton)来映射你的处理函数,因为CDialogBar中的控件通知消息会自动发给CDialogBar的父窗口,这样你无需添加与每个BUTTON对应的控制变量就能对它们做出响应了。
      

  5.   

    To  wened(阿坟) :
       如果按你那种方法,那程序的修改量非常之大
      

  6.   

    你把你的EMAIL留下,我这有例子
      

  7.   

    这种方法不太妥当
    为什么不建对话框类,让后在MainFrm中包含头文件呢。
      

  8.   

    我知道这种方法不太合理,但已经到了项目后期,再改框架工作量比较大
    况且即将验收,程序又不是我写的!问题终于解决了,谢谢各位的帮助!
    特别鸣谢winne_ll(feiyang),其实我也是这样做的