質問です。

表示後に、「閉じる」ボタンで非表示にしたモードレスダイアログが再表示できなくて困ってます。
ShowWindow(SW_SHOW)で再表示しようとすると、ウインドウハンドルがないといって怒られます。

ShowWindow(SW_HIDE) ⇔ ShowWindow(SW_SHOW)
の切り替えをするときに、ほかに何かしなければならないのでしょうか?

MainFrmにて
m_pCDialog = new CDialog(CWnd::GetDesktopWindow());
if (m_pCDialog->GetSafeHwnd() == NULL)
{
  m_pCDialog->Create();
  m_pCDialog->MoveWindow(0, 0, 90, 90, TRUE);
  m_pCDialog->SetImageNum((unsigned int)pDC->m_uiNumCameras);
  for (unsigned int i = 0; i < pDC->m_uiNum; i++)
  {
    m_pCDialog->Set(i, pDC->a.GetInfo(i), pDC->a.GetBuffer(i));
  }
  m_pCDialog->ShowWindow(SW_SHOW);
}

CDialogにて
CDialog::OnHide()
{
  ShowWindow(SW_HIDE);
}

としています。