He creado un cuadro de diálogo y vinculado al elemento de menú. En este caso el elemento de menú es Ayuda -> Estadísticas. Todas las obras. Así que cuando ejecuto el programa, haga clic en el menú Ayuda, entonces Estadísticas, aparece un cuadro de diálogo.

También tengo estático de un cuadro de texto en el cuadro de diálogo. ¿Cómo se puede cambiar el texto de esta estática cuadro de texto en tiempo de ejecución?

P. S: Aunque tengo un cuadro de diálogo en marcha y funcionando, yo no tengo la manija para el cuadro de diálogo. Si alguno de sus soluciones involucran saber el identificador en el cuadro de diálogo, por favor, dime cómo recuperarlo. Gracias.

EDICIÓN:

class CStatisticsDlg : public CDialogEx
{
public:
        CStatisticsDlg();

//Dialog Data
    enum { IDD = IDD_STATISTICS };

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    //DDX/DDV support

//Implementation
protected:
    DECLARE_MESSAGE_MAP()
public:
};

CStatisticsDlg::CStatisticsDlg() : CDialogEx(CStatisticsDlg::IDD)
{
}

void CStatisticsDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CStatisticsDlg, CDialogEx)
END_MESSAGE_MAP()
  • Podría ser útil si usted proporciona el código que estás utilizando para el diálogo.
  • acaba de agregar el código que se encarga de crear el cuadro de diálogo.
InformationsquelleAutor user3126297 | 2014-02-08

1 Comentario

  1. 4
    1. En el Asistente de Clase, crear una variable de miembro de CString para la etiqueta. Nota: por defecto, las etiquetas no tienen un id personalizado para que usted tiene que dar uno como IDC_MY_LABEL.
    2. En algún lugar antes de mostrar el cuadro de diálogo llamada m_strMyLabel.SetWindowText("blah");

    Si necesita hacerlo, mientras que el diálogo está abierto, usted tiene que llamar a UpdateData(FALSE)

    Edit: si usted no desea crear una variable miembro puede
    **se ha corregido la tipificación de la memoria….

    //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 por la respuesta. Cómo hacer esto programtically(es decir, sin el asistente de clase)?
    • Actualizado mi respuesta.
    • dice GetDlgItem no tomar 1 argumento….

Dejar respuesta

Please enter your comment!
Please enter your name here