0

フォームにテキスト ボックスを追加しようとしています (このボックスから入力されたデータをドキュメントに渡して保存したかったのですが)、テキスト ボックスを機能させるのに問題があります。

以下は私が試したコードです。テキスト ボックスが表示されないのはなぜですか。また、ビューにテキスト ボックスを適切に表示するにはどうすればよいですか。

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
}
4

1 に答える 1

2

私はいくつかの問題を見ることができます:

  1. OnDraw() は CEdit コントロールを作成するための適切な場所ではありません - CMy861a4VasilkovskiyView::Create() はおそらく最適な場所です。OnDraw() のままにしておくと、ビューが再描画されるたびに CEdit コントロールが再作成されますが、これは望ましくありません。
  2. CEdit m_edit 変数は、CMy861a4VasilkovskiyView クラスのメンバー変数である必要があります。これが描画されない主な理由です - 描画される前に m_edit が範囲外になる瞬間です。
于 2013-04-25T08:51:36.383 に答える