mfc background-color richedit-control

Desea mostrar el cuadro de color alrededor del control Richedit en MFC en tiempo de ejecución



background-color richedit-control (1)

Puede haber una mejor manera de lograr esto, pero lo siguiente debería funcionar. Si deriva su propia clase de CRichEditCtrl, puede aprovechar el mensaje WM_NCPAINT para representar el borde. Algo como…

void RichEdit::OnNcPaint() { CPaintDC dc(this); // device context for painting CRect rect; GetWindowRect(&rect); ScreenToClient(rect); CPen pen; pen.CreatePen(PS_SOLID, 10, RGB(255, 255, 0)); dc.SelectObject(pen); dc.Rectangle(&rect); CHARFORMAT cf = { 0 }; int txtLen = GetTextLength(); cf.cbSize = sizeof(cf); cf.dwMask = CFM_ITALIC; SetSel(txtLen, -1); ReplaceSel("Some text"); // Apply formating to the just inserted text. SetSel(txtLen, GetTextLength()); SetSelectionCharFormat(cf); SetFocus(); // Do not call CRichEditCtrl::OnNcPaint() for painting messages }

Convierte el borde en Amarillo y escribe el texto correspondiente. Esto es lo que se verá.

Tengo una aplicación mfc. Tengo algunos controles richedit en el diálogo. Quiero mostrar un marco relleno de color amarillo alrededor de los controles. ¿Cuál es la manera de hacer esto?

Traté de crear una ctrl de edición enriquecida más alrededor de la cdtr richedit existente y usar SetBackgroundColor en su variable, pero colorea toda el área y otras ctrls enriquecidas se vuelven invisibles. Además, quiero cambiar el color circundante en tiempo de ejecución. Por favor, ayúdame. Estoy atascado con esto.