CAddDlg dlg(this);//对话框
dlg.Create(IDD_DIALOG1);
dlg.ShowWindow(SW_SHOW);
dlg.Detach();切断局部对象和对话框窗口句柄的联系,可不可以让对话框窗口在局部对象销毁后继续存在?
我记得在《VC++深入详解》中有用Detach把局部菜单对象和窗口联系切断而使菜单窗口不被销毁的例子。
还有 用Detach()切断联系后的窗口资源占的内存什么时候释放?
解决方案 »
- 关于用edit做日志显示框的问题,请指点
- 无效的描述符索引
- 高手来看看调试的问题
- 菜单中加了一项就出问题
- 使用scrollview绘图问题
- 如何使用这个函数 EnumPrinters
- 急问!!!程序文件中找不到include/sys/socket.h,那里可以找到socket.h呢,急,谢谢
- 请问b/s模式的服务器端,想实现session功能(为保持登录身份),有什么好办法吗?(讨论)
- 【CRecordSet】一个数据库下多个表的读取,用户名和密码如何写
- MFC对话框重绘背景时如何避免连子控件一起绘制的情况
- TerminateProcess 函数为啥失败?
- 对话框中用Picture控件显示一幅位图,为什么一定要把保证图片在最底层
在《VC++深入详解》中有用Detach把局部菜单对象和窗口联系切断而使菜单窗口不被销毁的例子
我想问一下对对话框这样做可以吗?
我试了一下程序会报错,我不知道是我没写对,还是对话框不可以这样做?关于Detach能给详细说说吗?
无模态对话框占用的内存在调用DestoryWindow后释放,当然你的程序退出后系统也会回收的
Detach源码:HWND CWnd::Detach()
{
HWND hWnd = m_hWnd;
if (hWnd != NULL)
{
CHandleMap* pMap = afxMapHWND(); // don't create if not exist
if (pMap != NULL)
pMap->RemoveHandle(m_hWnd);
m_hWnd = NULL;
}#ifndef _AFX_NO_OCC_SUPPORT
m_pCtrlSite = NULL;
#endif return hWnd;
}