LRESULT CMyReceiveDlg::OnDrawItem(WPARAM wparam, LPARAM lparam)
{
CMyProgressDlg dlg;
HWND pHwnd = this->GetSafeHwnd(); CWnd *pWnd=FindWindow(NULL,"Progress");  
if(wparam == 1)
{
dlg.m_message = "正在连接邮箱服务器,\n请稍后……";
dlg.DoModal();
}
else if(wparam == 2)
{
pWnd->SendMessage(WM_CLOSE);
dlg.m_message = "连接成功,\n正在获取邮件……";
dlg.DoModal();
}
else if(wparam == 3)
{
pWnd->SendMessage(WM_CLOSE);
}
else if( wparam == 4)
{
int nListItem = m_list.InsertItem(i, (const char*)g_bstrFrom);
m_list.SetItem(nListItem, 1, LVIF_TEXT, (const char*)g_bstrSubject, 0, 0, 0, NULL);
m_list.SetItem(nListItem, 2, LVIF_TEXT, (const char*)g_oleDate.Format("%Y-%m-%d"), 0, 0, 0, NULL);
UpdateData(FALSE);
}
return 0;
}

解决方案 »

  1.   

    dlg.DoModal();之后,已经进入对话框的循环了(模式对话框),只有对话框退出后,才能执行dlg.DoModal();后面的语句。但如果是非模式对话框,是不会停在那里的
      

  2.   

    @immigrator 
     变量wparam   的值为1-4,但是为什么到4之后又变回1了!
      

  3.   

    居然在OnDrawItem里面弹出模态对话框,真奇葩的代码,楼主还要多看书啊。