文本框MFC SDI不会出现

时间:2013-04-24 17:17:45

标签: c++ mfc textbox sdi

我正在尝试在表单中添加一个文本框(我希望将此框中输入的数据传递到文档进行存储),但是我无法使文本框生效。

Bellow是我尝试过的代码。为什么我的文本框没有显示,如何正确显示文本框以显示在我的视图中。

void CMy861a4VasilkovskiyView::OnDraw(CDC* pDC)
{
    CMy861a4VasilkovskiyDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;
    const CString str("Hello");
    pDC->TextOut(0, 0, str);
    CEdit m_edit;
    CRect rect(20,20,10,10);// (85, 110, 180, 210);

    m_edit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP |
             ES_AUTOHSCROLL | WS_BORDER, rect, this, ES_LEFT);
   // m_edit.SetFocus();


    // TODO: add draw code for native data here
}

1 个答案:

答案 0 :(得分:2)

我可以看到几个问题:

  1. OnDraw()不是创建CEdit控件的正确位置 - CMy861a4VasilkovskiyView :: Create()可能是最好的地方。如果你把它留在OnDraw()中,这将在每次重绘视图时重新创建CEdit控件,这不是你想要的。
  2. 您的CEdit m_edit变量需要是CMy861a4VasilkovskiyView类的成员变量。这是它没有被绘制的主要原因 - 目前m_edit在被绘制之前超出了范围。