使用MFC以编程方式创建控件

Att*_*lah 6 c++ mfc

我只是想知道该怎么做.我写 :

CEdit m_wndEdit;
Run Code Online (Sandbox Code Playgroud)

在按钮事件处理程序(对话框应用程序)中,我写道:

m_wndEdit.Create(//with params);
Run Code Online (Sandbox Code Playgroud)

但我仍然没有看到控件出现在UI中.

我实际上是在按钮处理程序中写的:

CWnd* pWnd = GetDlgItem(IDC_LIST1);
CRect rect;

pWnd->GetClientRect(&rect);

//pWnd->CalcWindowRect(rect,CWnd::adjustBorder);

wnd_Edit.Create(ES_MULTILINE | ES_NOHIDESEL | ES_READONLY,rect,this,105);

wnd_Edit.ShowWindow(SW_SHOW);

this->Invalidate();
Run Code Online (Sandbox Code Playgroud)

id 105不存在.(我在Create成员函数中使用它CEdit).我只是把它放在那里.它不应该是你想给新控件的id吗?它应该已经存在吗?

Nav*_*een 4

检查以下标志集,如MSDN中提到的示例:

   pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_NOHIDESEL | ES_READONLY,
      rect, this, 105);
Run Code Online (Sandbox Code Playgroud)