2013-04-24 52 views
0

我想添加一個文本框到我的表單中(我希望從這個文本框輸入數據到存儲文件),但我無法獲取文本盒子工作。文本框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 
} 

回答

2

我可以看到幾個問題:

  1. 的OnDraw()不是創建的CEdit控制在正確的地方 - CMy861a4VasilkovskiyView ::創建()可能是最好的地方。如果將它放在OnDraw()中,則每次重繪視圖時都會重新創建CEdit控件,這不是您想要的。
  2. 您的CEdit m_edit變量需要是您的CMy861a4VasilkovskiyView類的成員變量。這是它未被繪製的主要原因 - 此刻m_edit在繪製之前超出了範圍。