在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
启动代码如下
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