首先没有用文档视图支持,ChildView类从列表框类继承下来 目的是所记录文件在视图中可像在列表框内一样一行一个排列 当单击某一行时 此行记录弹出(相信大家一定看过这个例子) 但现在问题是 我在记录上双击没有反应 换句话说从列表框继承下的视图不支持双击事件 以下列出部分代码请高手指点
(好头疼,郁闷)CChildView类:
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) 
{
if (!CPhonesListBox::PreCreateWindow(cs))
{
return FALSE;
} cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;

//cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 
// ::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL);



//*********必须覆盖********
//必须覆盖原来从CWnd继承的一些个函数,才能保证以后引用列表框的功能
//覆盖了生成时的一个结构 还有OnPaint()函数 return TRUE;
}CPhonesListBox类:
BEGIN_MESSAGE_MAP(CPhonesListBox, CListBox)
ON_WM_CREATE()
ON_CONTROL_REFLECT(LBN_DBLCLK,OnEditItem)END_MESSAGE_MAP()void CPhonesListBox::OnEditItem()
{

CEditDialog dlg;    CString strItem;
    int nIndex = GetCurSel ();
    GetText (nIndex, strItem);
    int nPos = strItem.Find (_T ('\t'));    dlg.m_strName = strItem.Left (nPos);
    dlg.m_strPhone = strItem.Right (strItem.GetLength () - nPos - 1);    if (dlg.DoModal () == IDOK) {
        strItem = dlg.m_strName + _T ("\t") + dlg.m_strPhone;
        DeleteString (nIndex);
        AddString (strItem);
    }
    SetFocus ();}