我的界面上右边有一个文档与左边的Tree相关联,有点向Word软件的“文档结构图”,当我用鼠标在树上右击弹出一个对话框,此对话框属于另一个类,但是当我再次用鼠标左键点击对话框上的“确定”或“取消”按钮时,它没有任何反映。然而当我点击树以后,再次点击“确定”或“取消”按钮,才可以。请各位高手帮我解决!

解决方案 »

  1.   

    对话框是单独成一个类(CEditDlg),在我的CCheckTree类里(继承CTreeCtl)定义了一个对话框类对象,弹出对话框的代码在CCheckTree类的一个右键菜单项函数里,用的是CEditDlg.DoModle()的方式!!! 我放在树控件的右键响应函数里,我试过了,不行!请教
      

  2.   

    //主要函数代码如下:
    void CCheckTreeCtl::TreeNodePast()
    {
    if(CalledicDialog.DoModal( )==IDOK)//CalledicDialog是CCheckTreeCtl的一个成员变量
                                                //也是一个对话框类的对象
    {
    tempcalledic=CalledicDialog.m_calledic;//取得用户输入的间接调用的行地址
    calledic=DividedBase.hexstrtoint(tempcalledic);
    tempsic=CalledicDialog.m_sic;//取得用户分析的间接调用的目的地址
    sic=DividedBase.hexstrtoint(tempsic);
    CalledicDialog.m_calledic=_T("");//界面美观设计的需要
    }

    }void CCheckTreeCtl::OnPastenode()//是上下文菜单的某一菜单条的消息响应函数 
    {
    // TODO: Add your command handler code here
    TreeNodePast();
    }
    //我试过了你的建议,能够完成,但我的每个上下文菜单条完成不同的功能,不可能全部放入右键函数里。通过右键函数(把TreeNodePast()放在右键函数里)能够弹出对话框
    点击“确定”或“取消”有结果。但是当我把TreeNodePast()放入上下文菜单的某一菜单条的消息响应函数里时就不行了,我怀疑是上下文菜单的问题,是不是我的上下文菜单发出消息后弹出的对话框没有获得焦点还是其它???因为我发现当我点击树以后在点击对话框的“确定”或“取消”是有结果的。
      

  3.   

    你的问题我刚刚遇到过,已经解决了,不知道是否适合你的程序,如果方便的话,把源程序发送到我的油箱吧[email protected],我帮你调试一下。