C++ 在运行时更改对话框中的静态文本

C++ 在运行时更改对话框中的静态文本,c++,mfc,C++,Mfc,我创建了一个对话框并将其链接到菜单项。在这种情况下,菜单项为帮助->统计信息。一切正常。因此,当我运行程序时,单击“帮助”菜单,然后单击“统计”,会弹出一个对话框 对话框中还有一个静态文本框。如何在运行时更改此静态文本框的文本 注:虽然我有一个对话框正在运行,但我没有这个对话框的句柄。如果您的任何解决方案涉及了解对话框的句柄,请告诉我如何检索它。谢谢 编辑: 在类向导中,为标签创建CString成员变量。注意:默认情况下,标签没有自定义id,因此您必须给它一个类似IDC\u MY\u标签的id

我创建了一个对话框并将其链接到菜单项。在这种情况下,菜单项为帮助->统计信息。一切正常。因此,当我运行程序时,单击“帮助”菜单,然后单击“统计”,会弹出一个对话框

对话框中还有一个静态文本框。如何在运行时更改此静态文本框的文本

注:虽然我有一个对话框正在运行,但我没有这个对话框的句柄。如果您的任何解决方案涉及了解对话框的句柄,请告诉我如何检索它。谢谢

编辑:

  • 在类向导中,为标签创建CString成员变量。注意:默认情况下,标签没有自定义id,因此您必须给它一个类似IDC\u MY\u标签的id
  • 在显示对话框调用之前的某个地方
    mu strMyLabel.SetWindowText(“blah”)
  • 如果需要在对话框打开时执行此操作,则必须调用
    UpdateData(FALSE)

    编辑:如果不想创建成员变量,可以 **更正-从内存键入

    // Find the label
    // if called from within CStatusDlg class
    CWnd *label = GetDlgItem(IDC_MY_LABEL);
    label->SetWindowText("blah");
    
    // If called from elsewhere
    CStatusDlg dlg.....  // create the dialog
    CWnd *label = dlg.GetDlgItem(IDC_MY_LABEL);
    label->SetWindowText("blah");
    

    如果您提供了用于对话框的代码,可能会有所帮助。刚才添加了负责创建对话框的代码。thx用于回复。您将如何通过编程实现这一点(即没有类向导)?@user3126297更新了我的答案。
    // Find the label
    // if called from within CStatusDlg class
    CWnd *label = GetDlgItem(IDC_MY_LABEL);
    label->SetWindowText("blah");
    
    // If called from elsewhere
    CStatusDlg dlg.....  // create the dialog
    CWnd *label = dlg.GetDlgItem(IDC_MY_LABEL);
    label->SetWindowText("blah");