首先对那些和我一样在加班的朋友们道声辛苦了!我的主窗口是一个模式对话框(DOModal实现),我想点击对话框上的某个按钮弹出一个非模式对话框。那个非模式对话框弹是弹出来了,但是鼠标马上变成繁忙的那种状态,且不响应任何消息,点击按钮等均没有反映。我对那个非模式对话框的属性已经去掉了DISABLE属性,不知什么原因?谢谢!!

解决方案 »

  1.   

    这些说来话长了。
    这个代码是我维护别人的代码。他创建的是单文档程序,但实质上他是使用了对话框模式的。CMainFrame::OnCreate()
    {
       CWinThread* pT1 = AfxBeginThread( (AFX_THREADPROC)threadA, (void*)1 );
    }void threadA(void* pD)
    {
        CCardDlg cardDlg;
        cardDlg.Create( IDD_INSERT_CARD, NULL );
        cardDlg.ShowWindow( SW_SHOW );
        cardDlg.UpdateWindow();
        SendMessage( cardDlg.m_hWnd, WM_CLOSE, 0, 0 );
    }
    不好意思,我刚才描述错了,大致流程就是这样的。
      

  2.   

    我当时自己为了简单用向导直接生成对话框时也是这样的。
    OnButton1()
    {
        CCardDlg cardDlg;
        cardDlg.Create( IDD_INSERT_CARD, NULL );
        cardDlg.ShowWindow( SW_SHOW );
        cardDlg.UpdateWindow();
        Sleep(10000);
    }
      

  3.   

    你代码明显有问题,没有消息循环还给自己发送消息咋行。
    你应该把cardDlg做出全局变量指针,让主线程向这个窗口发关闭消息。