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.zip 54,6 KiB

Proyecto MFC que usa el separador, puedes usarlo como referencia. - linestatic_src.zip 2,11 KiB

Código fuente de la clase para usarlo en tus proyectos.
Debe estar registrado para poder descargar archivos Desea registrarse?
Otros Artículos en esta sección
-
El articulo muestra como utilizar MYSQL API para el acceso a bases de datos MySQL utilizando Visual C++ y MFC.Es un programa en C++ que implementa la factorización o descomposición LU (del inglés Lower-Upper).Es un tutorial que te enseña como programar un juego de ajedrez en Visual C++ paso a paso, empezando por dibujar el tablero hasta mover cada una de las piezas.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:

foro de Visual C++ »
