首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-03-03 
在DLL中关闭非模式对话框,出现错误 启动代码如下pdlgnewCGprsCommDlg()pdlg- Create(IDD_GPRSCOMM_DIAL

在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.csdn.net/t/20060228/17/4583923.html

热点排行