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
-
Una clase que permite obtener facilmente los parametros enviados desde la linea de comando en una aplicación C++.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.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.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »