定义了一个对话框类CDlg 其中有一个列表控件,CListViewCtrl m_cList;
BEGIN_DDX_MAP(CDlg)
DDX_CONTROL_HANDLE(IDC_LIST1,m_cList)
END_DDX_MAP()在LRESULT CDlg::OnInitDialog(UINT, WPARAM, LPARAM, BOOL &)
{
CenterWindow(); DoDataExchange(FALSE); ATLASSERT(m_cList.IsWindow()); DWORD dwStyle = m_cList.GetExStyle();
dwStyle |= LVS_EX_FULLROWSELECT;
dwStyle |= LVS_EX_CHECKBOXES;
.............
}HWND CDlg::Create(HWND hwnd)
{
ATLASSERT(!IsWindow()); return CDialogImpl<CDlg>::Create(hwnd);
}void CDlg::Destroy()
{
if(IsWindow())
{
DestroyWindow();
}
}在主界面上定义了 CDlg m_Dlg;
m_Dlg.Create(m_hWnd);在自定义的对话框中,关闭,调用Destroy。
然后又在主界面上m_Dlg.Create(m_hWnd);
就出问题,提示 ATLASSERT(m_cList.IsWindow());该如何解决?
BEGIN_DDX_MAP(CDlg)
DDX_CONTROL_HANDLE(IDC_LIST1,m_cList)
END_DDX_MAP()在LRESULT CDlg::OnInitDialog(UINT, WPARAM, LPARAM, BOOL &)
{
CenterWindow(); DoDataExchange(FALSE); ATLASSERT(m_cList.IsWindow()); DWORD dwStyle = m_cList.GetExStyle();
dwStyle |= LVS_EX_FULLROWSELECT;
dwStyle |= LVS_EX_CHECKBOXES;
.............
}HWND CDlg::Create(HWND hwnd)
{
ATLASSERT(!IsWindow()); return CDialogImpl<CDlg>::Create(hwnd);
}void CDlg::Destroy()
{
if(IsWindow())
{
DestroyWindow();
}
}在主界面上定义了 CDlg m_Dlg;
m_Dlg.Create(m_hWnd);在自定义的对话框中,关闭,调用Destroy。
然后又在主界面上m_Dlg.Create(m_hWnd);
就出问题,提示 ATLASSERT(m_cList.IsWindow());该如何解决?
解决方案 »
- 如何动态改变字体大小?
- 问一个使用OPENGL显示摄像头采集视频的问题
- 有没有第三方保证的项目交易啊
- 关于自动化接口传递数据的问题?
- WIRESHARK里的几个函数问题
- ◇◆◇ 我来散10分,第五个人进来后结贴 ◇◆◇
- 请高手看看我这种方法结束线程是否能释放线程所占有的资源
- 串口接收数据出错!请帮助
- mfc中如何杀死窗口已关掉但在任务管理器还未退出的进程
- 在线急求 : 关于VC 程序连接SQL server2000出现 数据库不存在或拒绝访问 的问题 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 编译都没问题就是执行时其中一个判断语句说非法接入
- UDP组播实现群聊的端口问题!
在创建之前先判断一下
if(m_Dlg.GetSafeHwnd())
{
m_Dlg.DestoryWindow();
}
m_Dlg.Create(...);确实也没有必要重复创建,非模态对话框你用ShowWindow(SW_SHOW/SW_HIDE);就可以了
, public CWinDataExchange<CDlg>
{
.........
};
全局变量?改成局部变量试试
那判断 m_Dlg.m_hWnd 有没有这个成员?莫非不是对话框的父类 那你定义一个BOOL 值 初始FALSE
Create的时候 如果为FALSE 就赋值TRUE
然后创建销毁的时候 赋值FALSE
#pragma push_macro("new")
#undef new
::new (&m_Dlg);
#pragma pop_macro("new")
// 再次创建。
m_Dlg.Create(m_hWnd);
提示 error C2059: 语法错误 : “new”
#undef new
::new (&m_Dlg);
#pragma pop_macro("new")
error C2059: 语法错误 : “new”还是不行