C/Visual C - Color de un textbox

 
Vista:

Color de un textbox

Publicado por Diego (1 intervención) el 23/03/2003 00:19:31
Soy estudiante de Ingenieria en el último año.
En un programa que estoy realizando necesitaria cambiar el color del valor numerico representado en un textbox en función de una variable.
Es para simular un valor de alarma.
Agradeceria a quien pudiere me indicara el camino, pues ando algo
perdido. Gracias: Diego
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

Cambiar color de texto en un TextBox según valor de alarma

Publicado por Alejandro (1075 intervenciones) el 13/05/2025 17:21:32
Hola Diego,

Para cambiar el color del valor numérico en un `textbox` en función de una variable en un programa de Visual C++, puedes seguir estos pasos:

1. Identificar el control TextBox:


Asegúrate de que tienes un control `TextBox` en tu formulario. Puedes usar un `CEdit` si estás trabajando con MFC.

2. Obtener el valor de la variable:


Define la variable que determinará el color del texto. Por ejemplo, podrías tener una variable que represente el estado de la alarma.

3. Cambiar el color del texto:


Puedes usar el método `SetTextColor` para cambiar el color del texto en el `TextBox`. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Supongamos que tienes un CEdit llamado m_myTextBox
CEdit m_myTextBox;
 
// Variable que determina el estado de la alarma
int alarmValue = 0; // Cambia este valor según tu lógica
 
// Cambiar el color del texto basado en el valor de la variable
if (alarmValue > 100) {
    m_myTextBox.SetTextColor(RGB(255, 0, 0)); // Rojo para alarma alta
} else if (alarmValue > 50) {
    m_myTextBox.SetTextColor(RGB(255, 165, 0)); // Naranja para alarma media
} else {
    m_myTextBox.SetTextColor(RGB(0, 255, 0)); // Verde para estado normal
}
 
// Actualiza el texto en el TextBox
CString strValue;
strValue.Format(_T("%d"), alarmValue);
m_myTextBox.SetWindowText(strValue);

4. Redibujar el control:


Después de cambiar el color, asegúrate de redibujar el control para que los cambios sean visibles. Puedes llamar a `Invalidate()` y `UpdateWindow()` en el `TextBox`.

5. Ejemplo completo:


Aquí tienes un ejemplo más completo que podrías usar en tu función de actualización:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void CMyDialog::UpdateAlarmDisplay(int alarmValue) {
    // Cambiar el color del texto basado en el valor de la variable
    if (alarmValue > 100) {
        m_myTextBox.SetTextColor(RGB(255, 0, 0)); // Rojo
    } else if (alarmValue > 50) {
        m_myTextBox.SetTextColor(RGB(255, 165, 0)); // Naranja
    } else {
        m_myTextBox.SetTextColor(RGB(0, 255, 0)); // Verde
    }
 
    // Actualiza el texto en el TextBox
    CString strValue;
    strValue.Format(_T("%d"), alarmValue);
    m_myTextBox.SetWindowText(strValue);
 
    // Redibuja el control
    m_myTextBox.Invalidate();
    m_myTextBox.UpdateWindow();
}

Conclusión:


Con estos pasos, deberías poder cambiar el color del texto en tu `TextBox` según el valor de la variable que simula la alarma. ¡Buena suerte con tu proyecto!
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