在基于文档中,我添加了一个CDialogBar,上面有些控件及按钮,比如IDOK按钮,可是,OK按钮为什么总是被Disable了似的,总也不能用?如果我想点击OK按钮引发事件,应该在CDialog中添加事件还是在MainFrame中添加?如何添加?谢谢大家的支持!!

解决方案 »

  1.   

    工具栏按钮和菜单项只有在有了响应的命令处理函数时才是可用的(enabled)。
    一般来讲CDialogBar是个工具栏,它的命令四个框架类(mainframe, document, view, winapp)中都能得到处理。
      

  2.   

    是这样:在CDialogBar中,我添加了一些按钮,以执行某些操作,同时呢,这些按钮都有相应的函数,在由CDialogBar对话框生成的类中定义的,然后在MainFrame中Create该对话框工具栏及相应的按钮,像这样:
    if (!m_wndBrowseDlg.Create(this, IDD_BROWSEDLG,
    CBRS_LEFT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
    ID_VIEW_BROWSEDLG))
    {
    TRACE0("Failed to create dialog bar m_wndImagesInDB\n");
    return -1; // fail to create
    } CListCtrl*  pList = (CListCtrl*)m_wndBrowseDlg.GetDlgItem(IDC_LISTBROWSE);
        VERIFY(pList);    pList->SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES);
        pList->InsertColumn(0,"Images in DataBase",LVCFMT_LEFT,150); CButton* pButton = (CButton*)m_wndBrowseDlg.GetDlgItem(IDOK);
    VERIFY(pButton);
    pButton->SetActiveWindow();
    实际上我希望点击该按钮以实现一定的算法执行,可是,这个按钮是灰色的而不可用的,如何解决?
      

  3.   

    必须有该button的UI消息函数,button才可用