文本框MFC SDI不会出现
问题描述:
我想添加一个文本框到我的表单中(我希望从这个文本框输入数据到存储文件),但我无法获取文本盒子工作。文本框MFC SDI不会出现
贝娄是我试过的代码。为什么我的文本框不显示,以及如何正确地让文本框出现在我的视图中。
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 ::创建()可能是最好的地方。如果将它放在OnDraw()中,则每次重绘视图时都会重新创建CEdit控件,这不是您想要的。
- 您的CEdit m_edit变量需要是您的CMy861a4VasilkovskiyView类的成员变量。这是它未被绘制的主要原因 - 此刻m_edit在绘制之前超出了范围。