在mfc中单击按钮时更改编辑框内容

dig*_*jay 4 mfc visual-c++

我在对话框上有一个编辑框和一个按钮.如何在单击按钮时更改编辑框运行时中的内容?我必须从文件中读取一条新记录,并在点击按钮时将其发布在编辑框中,我正在使用mfc.

Cod*_*ray 8

您可以通过调用从基类继承的方法来设置Edit控件的文本(由MFC中的CEdit包装).SetWindowTextCWnd

因此,您需要做的就是响应按钮控件上的单击事件.您可以通过在父窗口的方法中侦听来自相应按钮控件的BN_CLICKED通知来执行此操作.OnCommand

就像是:

BOOL CMyDialog::OnCommand(WPARAM wParam, LPARAM lParam)
{
    if (HIWORD(wParam) == BN_CLICKED && LOWORD(lParam) == IDC_MYBUTTON)
    {
        m_Edit.SetWindowText(TEXT("My string"));
    }
    return CWnd::OnCommand(wParam, lParam);
}
Run Code Online (Sandbox Code Playgroud)

获取和阅读有关MFC的书籍将非常有帮助.这是相当基本的东西,但如果您还不了解基本概念,那么在单个答案中可以涵盖很多内容.

使用类向导可以使这更容易...用Ctrl+ W键调用它并按照屏幕上的说明操作.你最终会得到类似的东西:

void CMyDialog::OnMyButton()
{
    m_Edit.SetWindowText(TEXT("My string"));
}
Run Code Online (Sandbox Code Playgroud)

  • @Ajay:使用`<kbd>`标签。单击[edit](http://stackoverflow.com/posts/9075468/edit)链接以查看确切的语法。 (2认同)

小智 6

按下按钮后,在大多数情况下,更改编辑控件中文本的最简单方法是:

SetDlgItemText(IDC_EDIT_ID, "Desired Text String")
Run Code Online (Sandbox Code Playgroud)

哪里IDC_EDIT_IDID(在设置的编辑控件的properties窗口)