C/Visual C - Ayuda con control

 
Vista:

Ayuda con control

Publicado por Arise (37 intervenciones) el 12/05/2003 12:48:19
Estoy con una aplicación basada en las MFC. El caso es que quiero mostrar unos datos en un formulario. Necesito poder mostrar diferentes tipos de letra para que quede mas decente. He pensado en utilizar un RichEditCtrl pero me da el error --> imposible crear el documento vació <---- al ejecutar la aplicación. He estado buscando información sobre este control pero las MSDN para esto son pateticas.¿ Alguien me podria recomendar cualquier documuento (web, manual, etc...) donde encontrar como usar este control?
Gracia por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Uso de RichEditCtrl en aplicaciones MFC

Publicado por Alejandro (1153 intervenciones) el 02/06/2025 22:32:19
Arise, para utilizar `RichEditCtrl` en tu aplicación MFC y evitar el error "imposible crear el documento vacío", aquí tienes algunos pasos y recursos que pueden ayudarte:

1. Asegúrate de inicializar el control correctamente



Antes de usar `RichEditCtrl`, asegúrate de que has inicializado la biblioteca de controles de edición enriquecida. Esto se hace generalmente en la función `InitInstance` de tu aplicación:

1
2
3
4
5
6
7
8
9
#include <afxrich.h> // Asegúrate de incluir este encabezado
 
BOOL CYourApp::InitInstance()
{
    // Inicializa la biblioteca de controles de edición enriquecida
    AfxInitRichEdit2();
 
    // Resto de tu código de inicialización...
}

2. Crear y configurar el RichEditCtrl



Asegúrate de que estás creando el control correctamente en tu diálogo o ventana. Aquí hay un ejemplo básico de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// En tu clase de diálogo
CRichEditCtrl m_richEditCtrl;
 
// En el método OnInitDialog
BOOL CYourDialog::OnInitDialog()
{
    CDialogEx::OnInitDialog();
 
    // Crear el control RichEdit
    m_richEditCtrl.SubclassDlgItem(IDC_RICHEDIT1, this); // Asegúrate de que IDC_RICHEDIT1 es el ID correcto
 
    // Configura el control (opcional)
    m_richEditCtrl.SetEventMask(m_richEditCtrl.GetEventMask() | ENM_CHANGE);
 
    return TRUE;  // Devuelve TRUE a menos que establezcas el foco en un control
}

3. Mostrar texto con diferentes tipos de letra



Para mostrar texto con diferentes tipos de letra, puedes usar el método `SetSel` para seleccionar el texto y luego aplicar formato. Aquí tienes un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
void CYourDialog::InsertTextWithFormat()
{
    m_richEditCtrl.SetSel(-1, -1); // Mueve el cursor al final
    m_richEditCtrl.ReplaceSel(_T("Texto en negrita"));
 
    CHARFORMAT2 cf;
    ZeroMemory(&cf, sizeof(cf));
    cf.cbSize = sizeof(cf);
    cf.dwMask = CFM_BOLD;
    cf.dwEffects = CFE_BOLD;
 
    m_richEditCtrl.SetSelectionCharFormat(cf);
}

4. Recursos adicionales



Aquí hay algunos recursos que pueden ser útiles para aprender más sobre `RichEditCtrl`:

- Documentación de Microsoft: Rich Edit Control (https://learn.microsoft.com/en-us/cpp/mfc/reference/cricheditctrl-class?view=msvc-170) - Esta es la referencia oficial que proporciona información sobre la clase `CRichEditCtrl`.

- Ejemplos de código: Busca ejemplos en GitHub o en foros de programación como Stack Overflow, donde otros desarrolladores pueden haber compartido sus implementaciones.

- Libros sobre MFC: Considera consultar libros sobre MFC que incluyan secciones sobre controles de edición enriquecida. Algunos títulos populares incluyen Programming Windows with MFC de Jeff Prosise.

Espero que esta información te ayude a resolver el problema y a utilizar `RichEditCtrl` de manera efectiva en tu aplicación MFC.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar