我现在做一个东西,基于单文档应用程序,当鼠标双击时,生成一个CEdit对象,并设置焦点输入文本,然后单击关闭输入框,但是当关闭之后,程序就不再响应OnKeyDown()函数,望高手指点,谢谢

解决方案 »

  1.   

    当文本关闭后,其焦点必然也失去了;所以要想响应一个onkeydown()
    你必须先获得焦点。
      

  2.   

    对呀对呀,我就是要焦点,SetFocu()不管用啊!!,能不能具体实现一点,简单点说,就是象Excel那样输入文字,各位帮帮忙 阿 !
      

  3.   

    给你一部分可以参考的代码,其他的自己琢磨琢磨:
    // m_pEditControl and m_pEditString is data members
    void CXXXView::BeginEditText(CString &text, const CRect &rect, CFont *pRefFont, DWORD dwStyle) {
    ASSERT(m_pEditControl == NULL); m_pEditControl = new CEdit();
    m_pEditString = &text; m_pEditControl->Create(
    WS_VISIBLE | ES_AUTOHSCROLL | ES_AUTOVSCROLL | dwStyle,
    rect, this, 1);
    m_pEditControl->SetFont(YOURFONT);
    m_pEditControl->SetWindowText(text);
    m_pEditControl->SetSel(0, -1);
    m_pEditControl->SetFocus();
    }void CXXXView::EndEditText() {
    if(m_pEditControl != NULL) {
    m_pEditControl->GetWindowText(*m_pEditString);
    delete m_pEditControl;
    m_pEditControl = NULL;
            
    // Document里面数据发生变化;
    }
    }