![]() |
![]() |
|
|
|
|
|
Control que crea graficas de barras y sectores en Visual C++.

Pie Chart - Grafica de Sectores

Bar Chart - Grafica de Barras
El control CNSChartCtrl es basado en la clase CWnd. el proposito de esta clase es crear un control donde se pueda visualizar graficas de barras y sectores para ser usado en un cuadro de dialogo o en una vista. Este control permite la modificacion de elementos y colores en tiempo de ejecucion. Originalmente ha sido compilado en Win98 con VC++ SP6 pero puede ser compilado en cualquier version 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.
"MFC_NSChartCtrl" como el nombre de la clase (Class name). El valor de caption es usado para establecer el titulo del control.#include "NSChartCtrl.h" ... CNSChartCtrl m_chart
m_chart.SubclassDlgItem(IDC_CUSTOM1,this);
m_chart.PrepareColors(CNSChartCtrl::GrayScale); //Colors m_chart.AddValue(10,"One"); m_chart.AddValue(20,"Two"); m_chart.AddValue(90,"Three"); m_chart.AddValue(30,"Four"); m_chart.AddValue(40,"Five"); m_chart.AddValue(20,"Six")
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 funcion AddSolidBrush(COLORREF) ó AddBrush(COLORREF).
m_chart.ResetColors(); m_chart.AddSolidBrush(0x000000FF); m_chart.AddSolidBrush(RGB(255,0,255)); m_chart.AddBrush(m_pBrush); // CBrush* m_pBrush previamente inicializado.
El control NSChartCtrl notifica a la ventana u objeto que lo contiene cuando se ha hecho click en uno de los sectores o barras, segun sea el caso.El codigo de notificacion es is NSCS_SELECTEDITEM. Para ser utilizado necesita agregar las siguientes líneas de codigo.
Agregar la funcion en el bloque AFX_MSG de la clase..
class CYourDialog : public CDialog
{
...
//{{AFX_MSG(CYourDialog)
...
afx_msg void OnChartSelectedItem(NMHDR* pNMHDR, LRESULT* pResult);
...
//}}AFX_MSG
...
};
void CYourDialog::OnChartSelectedItem(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMCHARTCTRL nmchart = (LPNMCHARTCTRL)pNMHDR;
if(nmchart->iItem >= 0 )
{
//... have selected item
}
*pResult = FALSE;
}
Declarar el mensaje de notificacion en el bloque MESSAGE_MAP :
BEGIN_MESSAGE_MAP(CYourDialog, CDialog )
//{{AFX_MSG_MAP(CYourDialog)
...
ON_NOTIFY(NSCS_SELECTEDITEM, IDC_CUSTOM_CTRL, OnChartSelectedItem)
...
END_MESSAGE_MAP()
Si el control es creado en una vista tiene que cambiar el valor de IDC_CUSTOM_CTRL con 0.
25 Jun 2004 - 1.0.1 Versión inicial.
02 Aug 2004 - 1.1.0
![]() |
![]() |
|||
|
||||
![]() |
![]() |