在DLL中关闭非模式对话框,出现异常

在DLL中关闭非模式对话框,出现错误

启动代码如下
    pdlg=new   CGprsCommDlg();
    pdlg-> Create(IDD_GPRSCOMM_DIALOG,NULL);
    pdlg-> ShowWindow(SW_SHOW);  
   
    return   0;

关闭代码如下
    pdlg-> SendMessage(WM_CLOSE);  
// pdlg-> SendMessage(WM_DESTROY);  
//     DestroyWindow(pdlg-> GetSafeHwnd()   );
//     delete   pdlg;
    //pdlg=NULL;
    return   0;


用pdlg-> SendMessage(WM_CLOSE);   可以将对话框关闭,但再打开时在create   时出错,用pdlg-> SendMessage(WM_DESTROY);     则整个程序被退出了.这个该如何是好?


------解决方案--------------------

SendMessage(pdlg-> m_hWnd, WM_DESTROY, ........);

delete pdlg;
pdlg=NULL;
return 0;

------解决方案--------------------
你的启动代码和关闭代码是放在哪些函数里面啊?
------解决方案--------------------
pdlg-> Create(IDD_GPRSCOMM_DIALOG,m_MainWnd);

m_mainWnd---> 传一个调用程序的窗口句柄过来试试。
------解决方案--------------------
pdlg-> Create(IDD_GPRSCOMM_DIALOG,CWnd::FromHandle(m_MainWnd));
------解决方案--------------------
pdlg-> Create(IDD_GPRSCOMM_DIALOG,m_MainWnd);

m_mainWnd---> 传一个调用程序的窗口句柄过来试试。

if ( ! ::IsWindow(pdlg-> GetSafeHwnd())
pdlg-> Create(IDD_GPRSCOMM_DIALOG,m_MainWnd);
------解决方案--------------------
在关闭中
pdlg-> SendMessage(WM_CLOSE);
delete pdlg;
pdlg=NULL;
------解决方案--------------------
在DLL接口函数中使用:

AFX_MANAGE_STATE(AfxGetStaticModuleState());


http://www.qqread.com/vc/i720283020_8.html
------解决方案--------------------
DLL非模态对话框
http://topic.****.net/t/20060228/17/4583923.html