0

我正在尝试在我的表单中添加一个文本框(我想将从此框中输入的数据传递到文档进行存储),但我无法让文本框正常工作。

贝娄是我尝试过的代码。为什么我的文本框没有出现,以及如何正确地让文本框出现在我的视图中。

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
}
4

1 回答 1

2

我可以看到几个问题:

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