在一个对话框中加了一个CListCtrl控件A,想实现双击其中的某一行打开一个新对话框功能,于是为该控件加了以下函数和代码,看起来,视乎没问题,可是就是不弹出新对话框,而是将原来的有控件A的那个对话框,弹了出来,不解?
代码:void CLCDemoDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos); // 得到项目索引
CEditDlg ed;
ed.DoModal();
*pResult = 0;
}
代码:void CLCDemoDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos); // 得到项目索引
CEditDlg ed;
ed.DoModal();
*pResult = 0;
}
CEditDlg ed;
ed.DoModal();
之前一切正常,可我想不出上面的两行有什么问题?
在LCDemoDlg.h中定义试试
ed.DoModal();
后有没有注销它?如果没有就是正常的,因为在主线程还没有关闭之前,关闭对话框实际并没有真正从内存移除它.