Separador de controles para formularios MFC
La clase CLineStatic basada en CStatic dibuja además del texto una linea separadora dentro del ambito del control, en realidad es muy sencillo.
Modo de uso.
Para poder utilizar esta clase primero debemos incluir los archivos de codigo fuente de la clase CLineStatic:linestatic.hy linestatic.cpp al proyecto. Luego crear una instancia de la clase con los controles static deseados en los formularios y listo.
La imagen anterior muestra un control static en tiempo de diseño, al crear una instancia este control con la clase CLineStatic obtendremos el siguiente resultado en en tiempo de ejecución:
El control es una alternativa para ayudar a ordenar mejor nuestros formularios. La imagen siguiente muestra el uso de control en un formulario de datos.
Código fuente.
- Code: Seleccionar todo
- void CLineStatic::OnPaint()
- {
- CPaintDC dc(this); // device context for painting
- CRect rect;
- GetClientRect(&rect);
- DrawControl(&dc, rect);
- }
- void CLineStatic::DrawControl(CDC *pDC, CRect &m_rect)
- {
- CPoint a,b;
- CPen pen1,pen2;
- CString strText;
- pen1.CreatePen(PS_SOLID,1,::GetSysColor(COLOR_BTNSHADOW));
- pen2.CreatePen(PS_SOLID,1,::GetSysColor(COLOR_BTNHIGHLIGHT));
- pDC->SetBkColor(::GetSysColor(COLOR_BTNFACE));
- CPen *pOldPen = pDC->SelectObject (&pen1);
- pDC->MoveTo(m_rect.left ,m_rect.Height()/2);
- pDC->LineTo(m_rect.right ,m_rect.Height()/2);
- pDC->SelectObject (&pen2);
- pDC->MoveTo(m_rect.left ,m_rect.Height()/2+1);
- pDC->LineTo(m_rect.right ,m_rect.Height()/2+1);
- GetWindowText(strText);
- if(!strText.IsEmpty())
- {
- CFont *oldFont = pDC->SelectObject(&m_font);
- a = CPoint(m_rect.left + 10 ,m_rect.top);
- CSize fSize = pDC->GetTextExtent(strText);
- pDC->DrawState(a,fSize,strText,
- IsWindowEnabled()?DSS_NORMAL:DSS_DISABLED,
- TRUE, 0,(HBRUSH)NULL);
- pDC->SelectObject(&oldFont);
- }
- pen1.DeleteObject();
- pen2.DeleteObject();
- pDC->SelectObject(pOldPen);
- }
Historia
- 20 Nov 2003 - 1.0 Versión inicial.

Archivos Adjuntos
- linestatic_demo.zip54.6 KiB
Proyecto MFC que usa el separador, puedes usarlo como referencia. - linestatic_src.zip2.11 KiB
Código fuente de la clase para usarlo en tus proyectos.
Otros Artículos en esta sección
-
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.Un control personalizado basado en la clase CStatic en el que se puede cambiar el color de fondo y color texto, es muy útil para darle una apariencia mejorada a nuestras aplicaciones Visual C++Se trata de un pequeño pack sobre OpenGL que he compilado para ustedes. Pueden utilizar estas librerías para sus proyectos.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »