CStatic de colores en Visual C++
Para lograr este resultado la clase basada en CStatic implementa un nuevo comportamiento en la asignación de colores utilizando el mensaje WM_CTLCOLOR:
- Code: Seleccionar todo
- HBRUSH bpCstmLabel::CtlColor(CDC* pDC, UINT nCtlColor)
- {
- // El pincel se destruye automáticamente al salir de la función
- CBrush Brush;
- // Estas lineas solo trabajan sobre Win9x
- // Sobre WinNT no se nota el Color... asi
- // que haremos unos cambios...
- /*
- Brush.CreateSolidBrush( BackColor );
- CBrush *OldBrush = pDC->SelectObject( &Brush );
- pDC->SetBkColor( BackColor );
- pDC->SetTextColor( ForeColor );
- */
- // Este es un metodo mas directo... para WinNT
- // Este color es la brocha general..
- HBRUSH mBrush = (HBRUSH )::CreateSolidBrush( BackColor );
- // Establecer Pincel.
- HBRUSH *OldBrush = (HBRUSH*)pDC->SelectObject( &Brush );
- // Seleccionamos el color del fondo al texto
- pDC->SetBkColor( BackColor );
- // Seleccionamos el color del texto
- pDC->SetTextColor( ForeColor );
- return (HBRUSH) mBrush ;
- }
Modo de uso
Para poder utilizar esta clase en Visual C++, pueden seguir los siguientes pasos:
- Agregar los archivos bpCstmLabel.h y bpCstmLabel.cpp al proyecto (Menu: Project >Add to project >Files).
- Instanciar los controles Static con la clase bpCstmLabel utilizando ClassWizard, tambien este procedimiento se puede hacer escribiendo el codigo necesario.
- Pueden cambiar los colores directamente, por ejemplo:
- Code: Seleccionar todo
- m_label.BackColor = RGB( 255 , 0 , 0 ); // Rojo
- m_label.ForeColor = RGB( 0 , 0 , 255 ); // Azul
- Ejecutar!
Otros Artículos en esta sección
-
Hola a todos de nuevo fanáticos de la programación les presento un programa que genera un pupiletras o sopa de letras a partir de palabras al azar.Un control para el manejo de números decimales en Visual C++, está basado en la clase CEdit, y ha sido modificada para poder manipular y visualizar números decimales en formularios MFC.Se trata de un juego donde hay una serpiente que esta en constante movimiento, cuando come algo crece, el juego termina cuando la serpiente ya no tiene espacio.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »