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
-
Es una versión del cortador de archivos Hacha que incluye el código fuente, puedes utilizar el cortador para enviar archivos en medios pequeños.Same Game es un juego tipo puzzle (rompecabezas) de un solo jugador. El juego consiste en eliminar la mayor cantidad de grupos de elementos de un tablero de N x M.Una clase que permite obtener facilmente los parametros enviados desde la linea de comando en una aplicación C++.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »