本帖最后由 liuyemeixin1 于 2014-07-22 09:32:01 编辑

解决方案 »

  1.   

    没弄明白,没有代码没法分析。
    但是显示和隐藏只是设置了show,莫非你销毁了对话框?调试终止在哪个位置啊?是不是有空指针?
      

  2.   

    由子对话框把操作 发给主对话框  (发送自定义消息) 
    由主对话框 做 子对话框的 显示和隐藏 不知道你是怎么在主对话框操作的 怎么会有BUG
      

  3.   

    代码很简单,对色彩按钮添加代码,把色彩选项当做参数的子对话框,
    this->ShowWindow(SW_HIDE);
    m_colorDlg.ShowWindow(SW_SHOW);
    但是出现的问题是,色彩对话框没有显示出来。然后每次单击主对话框的按钮“参数”,显示出来的都是色彩对话框,点击色彩对话框上按钮,参数对话框按钮也会来凑热闹,并没有完全隐匿:(过程也不是想要的参数按钮->色彩按钮->色彩对话框。
      

  4.   

    全部由主对话框来操作么?那估计有可能是指针没传递对如果用子对话框处理 子对话框 会不会 有点麻烦统一用主对话框操作 子对话框的 显示和隐藏 简单一些
    开始用的就是统一主对话框处理,直接用是色彩的按钮,调用主类对象的函数如下,
    void CPaDlg::OnChildDlg()
    {
    // TODO: Add your control notification handler code here
    m_colorDlg.ShowWindow(SW_SHOW); //色彩对话框显示
    m_pCntrDlg.ShowWindow(SW_HIDE); //参数对话框隐匿
    }
    提示的bug是指示到这里:
    BOOL CWnd::ShowWindow(int nCmdShow)
    {
    ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL)); if (m_pCtrlSite == NULL)
    return ::ShowWindow(m_hWnd, nCmdShow);
    else
    return m_pCtrlSite->ShowWindow(nCmdShow);
    }
    该怎么调用呢
      

  5.   

    CPaDlg 这个是主对话框? m_colorDlg
    m_pCntrDlg这两个create 了么
      

  6.   

    提示的bug  应该是没有找到 子对话框 句柄
      

  7.   

    都create了啊,不然第一个也不会创建成功,和第一个代码一样。区别就是参数的对话框是点击主对话框的参数按键,色彩选项的对话框是点击的第一个子对话框中的色彩按键
      

  8.   

    直接生成了类对象,调用主对话框的类成员函数,不能这么做么
    class A
    {
    public:
    A();
    set()
    {}
    public
    int m_i;
    }
      

  9.   


    class A
    {
    public:
    A()
    {
        m_i=0;
    }
    void set()
    {
         m_i=5;
    }
    int get()
    {
       return m_i;
    }
    public
    int m_i;
    }int main()
    {
          A a1;
          a1.set();
         int i1 = get();     A a2;
         int i2 = get();    // i1  和i2 的值是不相等的 
    }