NSChart - Visual C++

Por:ivancp,enviado 26 Jul 2004
Éste es un control que crea gráficas de barras y sectores en formularios MFC Visual C++, aquí puedes ver una muestra del resultado:

nschart2.gif
Gráfica de Barras

nschart.gif
Gráfica de Sectores


Introduccion

El control CNSChartCtrl es basado en la clase CWnd. el propósito de esta clase es crear un control donde se pueda visualizar gráficas de barras y sectores para ser usado en un cuadro de dialogo o en una vista. Este control permite la modificación de elementos y colores en tiempo de ejecución. Originalmente ha sido compilado en Win98 con VC++ SP6 pero puede ser compilado en cualquier versión de Windows donde pueda correr Visual C++ 6.0 o superior.

Este control es una alternativa a todos las herramientas que hacen un trabajo parecido.
Como usar el control

Crear un control definido por el usuario en el modo diseño del editor de dialogo del Visual C++y luego poner el nombre "MFC_NSChartCtrl" como el nombre de la clase (Class name). El valor de caption es usado para establecer el titulo del control.
  1. Crear una instancia de la clase en el archivo de cabecera del dialogo.

    #include "NSChartCtrl.h"
    ...
    CNSChartCtrl m_chart

  2. Instanciar el control con la variable de la clase:

    m_chart.SubclassDlgItem(IDC_CUSTOM1,this);

  3. Inicializar los colores y elementos del control en la function InitDialog() o cualquier otra.

    Code: Seleccionar todo
    1.  m_chart.PrepareColors(CNSChartCtrl::GrayScale); //Colors

    2.     m_chart.AddValue(10,"One");

    3.     m_chart.AddValue(20,"Two");

    4.     m_chart.AddValue(90,"Three");

    5.     m_chart.AddValue(30,"Four");

    6.     m_chart.AddValue(40,"Five");

    7.     m_chart.AddValue(20,"Six")



  4. Ejecutar!

Personalizando los colores y colores de fondo

El control NSChart usa un array de colores y/o patrones para rellenar los sectores y barras. Para agregar nuevos colores o patrones personalizados, use la función AddSolidBrush(COLORREF)ó AddBrush(COLORREF).

Code: Seleccionar todo
  1. m_chart.ResetColors();

  2. m_chart.AddSolidBrush(0x000000FF);

  3. m_chart.AddSolidBrush(RGB(255,0,255));

  4. m_chart.AddBrush(m_pBrush); // CBrush* m_pBrush previamente inicializado.



Notificaciones de eventos

El control NSChartCtrl notifica a la ventana u objeto que lo contiene cuando se ha hecho click en uno de los sectores o barras, según sea el caso.El código de notificacion es NSCS_SELECTEDITEM. Para ser utilizado necesita agregar las siguientes líneas de código.

Agregar la función en el bloque AFX_MSG de la clase..

Code: Seleccionar todo
  1. class CYourDialog : public CDialog

  2. {

  3.    ...

  4.       //{{AFX_MSG(CYourDialog)

  5.       ...

  6.       afx_msg void OnChartSelectedItem(NMHDR* pNMHDR, LRESULT* pResult);

  7.       ...

  8.       //}}AFX_MSG

  9.    ...

  10. };

  11. void CYourDialog::OnChartSelectedItem(NMHDR* pNMHDR, LRESULT* pResult)

  12. {

  13.    LPNMCHARTCTRL nmchart = (LPNMCHARTCTRL)pNMHDR;

  14.    if(nmchart->iItem >= 0 )

  15.    {

  16.       //... have selected item

  17.    }

  18.    *pResult = FALSE;

  19. }



Declarar el mensaje de notificacion en el bloque MESSAGE_MAP :

Code: Seleccionar todo
  1. BEGIN_MESSAGE_MAP(CYourDialog, CDialog )

  2.    //{{AFX_MSG_MAP(CYourDialog)

  3.    ...

  4.    ON_NOTIFY(NSCS_SELECTEDITEM, IDC_CUSTOM_CTRL, OnChartSelectedItem)

  5.    ...

  6. END_MESSAGE_MAP()



Si el control es creado en una vista tiene que cambiar el valor de IDC_CUSTOM_CTRL con 0.

Historial de versiones



  • 25 Jun 2004 - 1.0.1 Versión inicial.
  • 02 Aug 2004 - 1.1.0
    • Solucion de problemas de re-pintado..
    • Agregado de metodos de agregacion y eliminación en tiempo de ejecución.
    • Agregado de los mensajes de notificación y detección de click.

Archivos Adjuntos

Otros Artículos en esta sección

  • Personal Pack para OpenGL
    Se trata de un pequeño pack sobre OpenGL que he compilado para ustedes. Pueden utilizar estas librerías para sus proyectos.
    Por: MicroLogic©Software,2011-09-01
  • Shell para Simulación
    Shell para Simulación es una herramienta donde el usuario de manera interactiva puede modelar sistemas reales y definir sus características. La herramienta está orientada a la simulación de sistemas dinámicos y estocásticos que cambian de manera discreta.
    Por: nazg,2006-03-18
  • Juego de la Serpiente en Visual C++
    Se trata de un juego donde hay una serpiente que esta en constante movimiento, cuando come algo crece, el juego termina cuando la serpiente ya no tiene espacio.
    Por: ivancp,2004-03-27
¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »