一个对话框AA的类指针。  在主对话框中声明并初始化,属于主对话框的成员
打开对话框AA时,进行初始化,并显示。 在当前对话框中接受消息,但是为什么AA对话框的指针有的时候为空,有的时候不为空呢? 
在主对话框的构造中赋值为空
pSingleReapairDlg = NULL;定义
CSingleRepair * pSingleReapairDlg;初始化函数
void    CGPS_TEST04Dlg::SingleReapairDlgShow(LPARAM lParam)
{
USES_CONVERSION; CString order = A2W(((char *)lParam)); if(pSingleReapairDlg == NULL)
{ pSingleReapairDlg = new CSingleRepair(this); pSingleReapairDlg->Create(CSingleRepair::IDD,this);
} pSingleReapairDlg->order = order;
pSingleReapairDlg->InitData();
pSingleReapairDlg->ShowWindow(SW_SHOW); pSingleReapairDlg->SetActiveWindow();
}
自定义消息
ON_MESSAGE(REC_SINGLEREPAIR,Rec_SingleRepair)消息响应函数LRESULT CGPS_TEST04Dlg::Rec_SingleRepair(WPARAM wParam, LPARAM lParam)
{
if(pSingleReapairDlg != NULL)//这里为什么 pSingleReapairDlg 有的时候会为空值
pSingleReapairDlg->DrawInfo(lParam);
return S_OK;
}

解决方案 »

  1.   

    LRESULT CGPS_TEST04Dlg::Rec_SingleRepair(WPARAM wParam, LPARAM lParam)
    这个消息什么时候响应?
      

  2.   

    进入AA界面后,向服务器请求数据,然后显示domodal()进度条,知道接受到返回的数据后,进度条销毁。 然后显示数据。 
      

  3.   

    你销毁了非模态窗口,并且delete了new出来的指针了?
      

  4.   

    销毁的是进度条那个对话框,pSingleReapairDlg指针没有delete
      

  5.   

    从给出的几行代码看,不应该的。查查看,是不是某个地方的操作越界,将pSingleReapairDlg破坏了。具体可下个断点,监视一下pSingleReapairDlg的变化。