在一个对话框中加了一个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;
}

解决方案 »

  1.   

    首先你在该函数里设置断点,看是否双击时进入了该函数我想你对a控件也添加了单击的消息函数NM_CLICK,在双击时其实是触发了2次NM_CLICK
      

  2.   

    我已经测试了,在
    CEditDlg ed;
    ed.DoModal();
    之前一切正常,可我想不出上面的两行有什么问题?
      

  3.   

    CEditDlg ed;
    在LCDemoDlg.h中定义试试
      

  4.   

    在一个基于对话框的应用中,正常。而在一个单文档的应用中,单击一个菜单项,在弹出的对话框中加入一个CListCtrl控件A,给A加上双击函数void CLCDemoDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult);就出现该效果,不解?
      

  5.   

    CEditDlg ed;
    ed.DoModal();
    后有没有注销它?如果没有就是正常的,因为在主线程还没有关闭之前,关闭对话框实际并没有真正从内存移除它.