Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 文本框MFC SDI won';出现_C++_Mfc_Textbox_Sdi - Fatal编程技术网

C++ 文本框MFC SDI won';出现

C++ 文本框MFC SDI won';出现,c++,mfc,textbox,sdi,C++,Mfc,Textbox,Sdi,我试图在表单中添加一个文本框(沿着这条路走下去,我想将从该框输入的数据传递到文档以供存储),但在使文本框正常工作时遇到了问题 下面是我尝试过的代码。为什么我的文本框不显示,以及如何正确地使文本框显示在视图中 void CMy861a4VasilkovskiyView::OnDraw(CDC* pDC) { CMy861a4VasilkovskiyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc)

我试图在表单中添加一个文本框(沿着这条路走下去,我想将从该框输入的数据传递到文档以供存储),但在使文本框正常工作时遇到了问题

下面是我尝试过的代码。为什么我的文本框不显示,以及如何正确地使文本框显示在视图中

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
}

我可以看到几个问题:

  • OnDraw()不是创建CEdit控件的正确位置-CMy861a4VasilkovskiyView::Create()可能是最好的位置。如果将其保留在OnDraw()中,则每次重新绘制视图时都会重新创建CEdit控件,这不是您想要的
  • CEdit m_编辑变量必须是CMy861a4VasilkovskiyView类的成员变量。这是它没有被绘制的主要原因——在m_edit在绘制之前超出范围的那一刻