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.¿Es posible Incluir todo un proyecto MFC en un solo Archivo? Pues parece que sí, este articulo te muestra como.Puedes usar este control en tus aplicaciones Visual C++ para visualizar imágenes dentro de un formulario MFC o también en entornos derivados de CWnd.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:

foro deVisual C++ »
