Текстовое поле 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
}

0

Решение

Я вижу пару проблем:

  1. OnDraw () — неподходящее место для создания элемента управления CEdit — CMy861a4VasilkovskiyView :: Create (), вероятно, лучшее место. Если вы оставите его в OnDraw (), он будет воссоздавать элемент управления CEdit каждый раз, когда представление перерисовывается, а это не то, что вам нужно.
  2. Ваша переменная CEdit m_edit должна быть переменной-членом вашего класса CMy861a4VasilkovskiyView. Это основная причина, по которой он не рисуется — в данный момент m_edit выходит из области видимости, прежде чем он будет нарисован.
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]