gpt4 book ai didi

c++ - 文本框 MFC SDI 不会出现

转载 作者:行者123 更新时间:2023-11-28 03:18:20 24 4
gpt4 key购买 nike

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

下面是我试过的代码。为什么我的文本框没有出现,以及如何正确地让文本框出现在我的 View 中。

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. OnDraw() 不是创建 CEdit 控件的正确位置 - CMy861a4VasilkovskiyView::Create() 可能是最佳位置。如果您将它留在 OnDraw() 中,这将在每次重绘 View 时重新创建 CEdit 控件,这不是您想要的。
  2. 您的 CEdit m_edit 变量需要是 CMy861a4VasilkovskiyView 类的成员变量。这是它未被绘制的主要原因 - 目前 m_edit 在绘制之前超出范围。

关于c++ - 文本框 MFC SDI 不会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com