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
-
Se trata de un pequeño pack sobre OpenGL que he compilado para ustedes. Pueden utilizar estas librerías para sus proyectos.Aquí un programa que espero les guste.. es un programa conocido que usa los conceptos básicos de árboles, nodos.Ésta clase hace fácil el manejo de las entradas del Registro de Windows.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »