当程序生成时,有一个树,然后还有一个DialogBar。当我点击树中的每个节点时,我想在DialogBar中显示不同的Dialog,应该怎么做呢?树的操作,我能明白,但是当我点击树时,怎么在DialogBar中显示Dialog呢?mfcdialogtree

解决方案 »

  1.   

    这好办啊,就像TABCTRL一样。只不过你不需要TABCTRL,而是在DIALOGBAR上空出一个区域,然后将各个DIALOG设置成child风格,根据不同的树选择,在该空出区域显示不同的DIALOG就行了。各个DIALOG用数组在DIALOGBAR中用成员变量的方法记录就行了。
      

  2.   

    麻烦您具体一点,我比较菜,最好给一点代码……我每点击一个节点,显示不同的dialog,非模式Dilaog的创建应该在哪呢?
      

  3.   

    非模态Dialog的创建应该在 DialogBar中。
    2楼说的很清楚啦~ http://hi.baidu.com/kingcomer/item/610277a938e4242c8919d3d5
      

  4.   

    您好,我试了一下,我在DialogBar的OnCreate函数中,只要创建两个对话框,程序就会崩溃……
      

  5.   

    我给DialogBar设置了属性:
    m_wndAddFunCtrlBar.SetSCBStyle(m_wndAddFunCtrlBar.GetSCBStyle() |
    SCBS_SIZECHILD);
    m_wndAddFunCtrlBar.SetBarStyle(m_wndAddFunCtrlBar.GetBarStyle() |
    CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
    m_wndAddFunCtrlBar.EnableDocking(CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT);
    DockControlBar(&m_wndAddFunCtrlBar,AFX_IDW_DOCKBAR_RIGHT);
    是不是这个的问题呢?
      

  6.   

    我把上面发的那些代码注释掉了,可以显示出来,但此时的DialogBar覆盖了整个客户区,将与他一同创建的一个DilogBar也覆盖了……
      

  7.   

    再请教大家一个问题哈,如何让一个Dialog占满整个DialogBar?
      

  8.   

    ...,,貌似我前段时间也在写这个,,,。。我是基于对话框,,,然后一个treecontrol控件,,点击节点中相应的地方,,会在右边显示相应的功能。。
      

  9.   

    如何让Dilog占满整个DilogBar呢? 由于DialogBar是可以拖动的,我在Dialog中放个ListBox,由于宽度较宽,如果在resource中将Dialog拖长拖宽的话,ListBox下面不会出现水平滚动条,应该怎能解决呢?
      

  10.   

    //获得当前窗口的尺寸
    CRect rcTotal;
    GetClientRect(&rcTotal);
    dlg.moveWindow(&rcTotal);//让Dilog占满整个DilogBar呢